Changeset View
Changeset View
Standalone View
Standalone View
cypress/integration/deposit-admin.spec.js
Show First 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | beforeEach(() => { | ||||
expectedOrigins = { | expectedOrigins = { | ||||
614: 'https://w.s.o/c-d-1', | 614: 'https://w.s.o/c-d-1', | ||||
613: 'https://w.s.o/c-d-2', | 613: 'https://w.s.o/c-d-2', | ||||
612: '' | 612: '' | ||||
}; | }; | ||||
}); | }); | ||||
it('Should filter out deposits matching excluding pattern from display', function() { | |||||
cy.adminLogin(); | |||||
cy.visit(this.Urls.admin_deposit()); | |||||
cy.server(); | |||||
// entry supposed to be excluded from the display by default | |||||
let extraDeposit = { | |||||
'id': 10, | |||||
'external_id': 'check-deposit-3', | |||||
'reception_date': '2020-05-18T11:20:16Z', | |||||
'status': 'done', | |||||
'status_detail': null, | |||||
'swh_id': 'swh:1:dir:fb234417', | |||||
'swh_id_context': 'swh:1:dir:fb234417;origin=https://w.s.o/c-d-3;visit=swh:1:snp:181417fb;anchor=swh:1:rev:3d166604;path=/' | |||||
}; | |||||
// of course, that's how to copy a list (an "array") | |||||
let testDeposits = responseDeposits.slice(); | |||||
// and add a new element to that array by mutating it... | |||||
testDeposits.push(extraDeposit); | |||||
expectedOrigins[10] = 'https://w.s.o/c-d-3'; | |||||
// ensure we don't touch the original reference | |||||
expect(responseDeposits.length).to.be.equal(3); | |||||
expect(testDeposits.length).to.be.equal(4); | |||||
cy.route({ | |||||
method: 'GET', | |||||
url: `${this.Urls.admin_deposit_list()}**`, | |||||
response: { | |||||
'draw': 10, | |||||
'recordsTotal': testDeposits.length, | |||||
'recordsFiltered': testDeposits.length, | |||||
'data': testDeposits | |||||
} | |||||
}).as('listDeposits'); | |||||
cy.location('pathname') | |||||
.should('be.equal', this.Urls.admin_deposit()); | |||||
cy.url().should('include', '/admin/deposit'); | |||||
cy.get('#swh-admin-deposit-list') | |||||
.should('exist'); | |||||
cy.wait('@listDeposits').then((xhr) => { | |||||
let deposits = xhr.response.body.data; | |||||
expect(deposits.length).to.equal(testDeposits.length); | |||||
cy.get('#swh-admin-deposit-list').find('tbody > tr').as('rows'); | |||||
// only 2 entries | |||||
cy.get('@rows').each((row, idx, collection) => { | |||||
let deposit = deposits[idx]; | |||||
let responseDeposit = testDeposits[idx]; | |||||
cy.log('deposit', deposit); | |||||
cy.log('responseDeposit', responseDeposit); | |||||
expect(deposit.id).to.be.equal(responseDeposit['id']); | |||||
expect(deposit.external_id).to.be.equal(responseDeposit['external_id']); | |||||
expect(deposit.status).to.be.equal(responseDeposit['status']); | |||||
expect(deposit.status_detail).to.be.equal(responseDeposit['status_detail']); | |||||
expect(deposit.swh_id).to.be.equal(responseDeposit['swh_id']); | |||||
expect(deposit.swh_id_context).to.be.equal(responseDeposit['swh_id_context']); | |||||
let expectedOrigin = expectedOrigins[deposit.id]; | |||||
// part of the data, but it should not be displayed (got filtered out) | |||||
if (deposit.external_id === 'check-deposit-3') { | |||||
cy.contains(deposit.status).should('not.be.visible'); | |||||
cy.contains(deposit.status_detail).should('not.be.visible'); | |||||
cy.contains(deposit.external_id).should('not.be.visible'); | |||||
cy.contains(expectedOrigin).should('not.be.visible'); | |||||
cy.contains(deposit.swh_id).should('not.be.visible'); | |||||
cy.contains(deposit.swh_id_context).should('not.be.visible'); | |||||
} else { | |||||
expect(deposit.external_id).to.be.not.equal('check-deposit-3'); | |||||
cy.contains(deposit.id).should('be.visible'); | |||||
if (deposit.status !== 'rejected') { | |||||
cy.contains(deposit.external_id).should('not.be.visible'); | |||||
cy.contains(expectedOrigin).should('be.visible'); | |||||
// ensure it's in the dom | |||||
} | |||||
cy.contains(deposit.status).should('be.visible'); | |||||
// those are hidden by default, so now visible | |||||
if (deposit.status_detail !== null) { | |||||
cy.contains(deposit.status_detail).should('not.be.visible'); | |||||
} | |||||
// those are hidden by default | |||||
if (deposit.swh_id !== null) { | |||||
cy.contains(deposit.swh_id).should('not.be.visible'); | |||||
cy.contains(deposit.swh_id_context).should('not.be.visible'); | |||||
} | |||||
} | |||||
}); | |||||
// toggling all links and ensure, the previous checks are inverted | |||||
cy.get('a.toggle-col').click({'multiple': true}).then(() => { | |||||
cy.get('#swh-admin-deposit-list').find('tbody > tr').as('rows'); | |||||
cy.get('@rows').should('have.length', 3); | |||||
cy.get('@rows').each((row, idx, collection) => { | |||||
let deposit = deposits[idx]; | |||||
let expectedOrigin = expectedOrigins[deposit.id]; | |||||
// filtered out deposit | |||||
if (deposit.external_id === 'check-deposit-3') { | |||||
cy.contains(deposit.status).should('not.be.visible'); | |||||
cy.contains(deposit.status_detail).should('not.be.visible'); | |||||
cy.contains(deposit.external_id).should('not.be.visible'); | |||||
cy.contains(expectedOrigin).should('not.be.visible'); | |||||
cy.contains(deposit.swh_id).should('not.be.visible'); | |||||
cy.contains(deposit.swh_id_context).should('not.be.visible'); | |||||
} else { | |||||
expect(deposit.external_id).to.be.not.equal('check-deposit-3'); | |||||
// ensure it's in the dom | |||||
cy.contains(deposit.id).should('not.be.visible'); | |||||
if (deposit.status !== 'rejected') { | |||||
cy.contains(deposit.external_id).should('not.be.visible'); | |||||
expect(row).to.contain(expectedOrigin); | |||||
} | |||||
expect(row).to.not.contain(deposit.status); | |||||
// those are hidden by default, so now visible | |||||
if (deposit.status_detail !== null) { | |||||
cy.contains(deposit.status_detail).should('be.visible'); | |||||
} | |||||
// those are hidden by default, so now they should be visible | |||||
if (deposit.swh_id !== null) { | |||||
cy.contains(deposit.swh_id).should('be.visible'); | |||||
cy.contains(deposit.swh_id_context).should('be.visible'); | |||||
} | |||||
} | |||||
}); | |||||
}); | |||||
cy.get('#swh-admin-deposit-list-error') | |||||
.should('not.contain', | |||||
'An error occurred while retrieving the list of deposits'); | |||||
}); | |||||
}); | |||||
it('Should display properly entries', function() { | it('Should display properly entries', function() { | ||||
cy.adminLogin(); | cy.adminLogin(); | ||||
cy.visit(this.Urls.admin_deposit()); | cy.visit(this.Urls.admin_deposit()); | ||||
let testDeposits = responseDeposits; | let testDeposits = responseDeposits; | ||||
cy.server(); | cy.server(); | ||||
cy.route({ | cy.route({ | ||||
▲ Show 20 Lines • Show All 96 Lines • Show Last 20 Lines |