diff --git a/cypress/integration/deposit-admin.spec.js b/cypress/integration/deposit-admin.spec.js --- a/cypress/integration/deposit-admin.spec.js +++ b/cypress/integration/deposit-admin.spec.js @@ -31,7 +31,7 @@ 'external_id': 'c-d-1', 'reception_date': '2020-05-18T13:48:27Z', 'status': 'done', - 'status_detail': 'all good', + 'status_detail': null, 'swh_id': 'swh:1:dir:ef04a768', 'swh_id_context': 'swh:1:dir:ef04a768;origin=https://w.s.o/c-d-1;visit=swh:1:snp:b234be1e;anchor=swh:1:rev:d24a75c9;path=/' }, @@ -40,7 +40,7 @@ 'external_id': 'c-d-2', 'reception_date': '2020-05-18T11:20:16Z', 'status': 'done', - 'status_detail': 'everything is fine', + 'status_detail': null, 'swh_id': 'swh:1:dir:181417fb', 'swh_id_context': 'swh:1:dir:181417fb;origin=https://w.s.o/c-d-2;visit=swh:1:snp:8c32a2ef;anchor=swh:1:rev:3d1eba04;path=/' }, @@ -49,7 +49,7 @@ 'external_id': 'c-d-3', 'reception_date': '2020-05-18T11:20:16Z', 'status': 'rejected', - 'status_detail': 'hu ho, issue!', + 'status_detail': 'incomplete deposit!', 'swh_id': null, 'swh_id_context': null } @@ -73,7 +73,9 @@ .should('exist'); // those are computed from the - let expectedOrigins = ['https://w.s.o/c-d-1', 'https://w.s.o/c-d-2', '']; + let expectedOrigins = [ + 'https://w.s.o/c-d-1', 'https://w.s.o/c-d-2', '' + ]; cy.wait('@listDeposits').then((xhr) => { cy.log('response:', xhr.response); @@ -99,48 +101,58 @@ let expectedOrigin = expectedOrigins[idx]; // ensure it's in the dom - expect(row).to.contain(deposit.id); - if (deposit.status === 'done') { - expect(row).to.contain(deposit.external_id); - } else { - expect(row).to.not.contain(deposit.external_id); + cy.contains(deposit.id).should('be.visible'); + if (deposit.status !== 'rejected') { + cy.contains(deposit.external_id).should('be.visible'); + cy.contains(expectedOrigin).should('be.visible'); + } + + 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'); } - expect(row).to.contain(deposit.status); - expect(row).to.contain(expectedOrigin); + // those are hidden by default - expect(row).to.not.contain(deposit.status_detail); - expect(row).to.not.contain(deposit.swh_id); - expect(row).to.not.contain(deposit.swh_id_context); + 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').each((row, idx, collection) => { let deposit = deposits[idx]; + let expectedOrigin = expectedOrigins[idx]; // ensure it's in the dom - expect(row).to.not.contain(deposit.id); - if (deposit.status === 'done') { + cy.contains(deposit.id).should('not.be.visible'); + if (deposit.status !== 'rejected') { expect(row).to.contain(deposit.external_id); - } else { - expect(row).to.not.contain(deposit.external_id); + expect(row).to.contain(expectedOrigin); } + expect(row).to.not.contain(deposit.status); - // those are hidden by default - expect(row).to.contain(deposit.status_detail); + // 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) { - expect(row).to.contain(deposit.swh_id); - expect(row).to.contain(deposit.swh_id_context); + 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'); }); + }); });