Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DCJ-48] Make the DAR dataset selection remove only after draft DAR creation #2622

Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
df82e6f
feat: first pass
aarohinadkarni Jul 8, 2024
4a12925
feat: actually save the deletion of datasets
aarohinadkarni Jul 9, 2024
b90c9db
feat: don't show delete button if only one dataset left
aarohinadkarni Jul 10, 2024
a750c4b
refactor: clean up
aarohinadkarni Jul 10, 2024
124a1ef
feat: add environment check to only have this on dev
aarohinadkarni Jul 12, 2024
d56cece
feat: progress on a pending deletion strategy
aarohinadkarni Jul 15, 2024
cf65476
refactor: clean up lint warnings
aarohinadkarni Jul 16, 2024
4903034
feat: fix key warning for RequiredDAAs
aarohinadkarni Jul 16, 2024
1d488f8
feat: fix key warning for DataAccessRequest
aarohinadkarni Jul 16, 2024
4b5e96c
resolve key errors
rushtong Jul 17, 2024
6e0b2c7
extract dataset selection widget to component
rushtong Jul 17, 2024
e9c94d5
fix: last element of dataset list cannot be deleted
rushtong Jul 17, 2024
642e88c
fix: move parent population to useEffect due to async state updates
rushtong Jul 17, 2024
6622801
feat: add disabled state
rushtong Jul 18, 2024
7861ff2
feat: fix validation conditions
rushtong Jul 18, 2024
4728988
Merge branch 'refs/heads/develop' into an-DCJ-48-UI-Due-to-DAA-restri…
rushtong Jul 18, 2024
007839e
feat: merge fixup
rushtong Jul 18, 2024
0201d5a
feat: fix draft save
rushtong Jul 18, 2024
8607e0f
feat: style updates
rushtong Jul 18, 2024
375261f
feat: refactor dataset name div
rushtong Jul 18, 2024
44d49b3
feat: use v3 dar endpoints
rushtong Jul 18, 2024
07e39c6
test: attempt a unit test for SelectableDatasets
aarohinadkarni Jul 19, 2024
27a190c
refactor: change name of test
aarohinadkarni Jul 19, 2024
c99b582
refactor: reduce duplication in test
aarohinadkarni Jul 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
145 changes: 145 additions & 0 deletions cypress/component/DataAccessRequest/selectable_datasets.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
/* eslint-disable no-undef */
import {React} from 'react';
import {mount} from 'cypress/react';
import DataAccessRequestApplication from '../../../src/pages/dar_application/DataAccessRequestApplication';
import SelectableDatasets from '../../../src/pages/dar_application/SelectableDatasets.jsx';

const props = {
datasets: [
{
dataSetId: 123456,
datasetIdentifier: `DUOS-123456`,
datasetName: 'Some Dataset 1'
},
{
dataSetId: 234567,
datasetIdentifier: `DUOS-234567`,
datasetName: 'Some Dataset 2'
},
{
dataSetId: 345678,
datasetIdentifier: `DUOS-345678`,
datasetName: 'Some Dataset 3'
},
{
dataSetId: 456789,
datasetIdentifier: `DUOS-456789`,
datasetName: 'Some Dataset 4'
},
],
setSelectedDatasets: () => {},
disabled: false
};

const propsDisabled = {
datasets: [
{
dataSetId: 123456,
datasetIdentifier: `DUOS-123456`,
datasetName: 'Some Dataset 1'
},
{
dataSetId: 234567,
datasetIdentifier: `DUOS-234567`,
datasetName: 'Some Dataset 2'
},
{
dataSetId: 345678,
datasetIdentifier: `DUOS-345678`,
datasetName: 'Some Dataset 3'
},
{
dataSetId: 456789,
datasetIdentifier: `DUOS-456789`,
datasetName: 'Some Dataset 4'
},
],
setSelectedDatasets: () => {},
disabled: true
aarohinadkarni marked this conversation as resolved.
Show resolved Hide resolved
};


describe('Selectable Datasets - Not Read Only', () => {

describe('With 4 Datasets', () => {
beforeEach(() => {
mount(<SelectableDatasets {...props} />);
});

it('Marks 2 datasets for removal', () => {
cy.get('#DUOS-123456_summary').click();
cy.get('#DUOS-345678_summary').click();
cy.get('#restore_dataset_123456').should('exist');
cy.get('#restore_dataset_345678').should('exist');
});

it('Unmark 1 of the previously marked for removal datasets', () => {
cy.get('#DUOS-123456_summary').click();
cy.get('#DUOS-345678_summary').click();
cy.get('#restore_dataset_123456').should('exist');
cy.get('#restore_dataset_345678').should('exist');
cy.get('#restore_dataset_345678').click();
cy.get('#remove_dataset_345678').should('exist');
});

it('Marks 2 more datasets for removal, leaving 1 dataset left not removed', () => {
cy.get('#DUOS-123456_summary').click();
cy.get('#DUOS-345678_summary').click();
cy.get('#restore_dataset_123456').should('exist');
cy.get('#restore_dataset_345678').should('exist');
cy.get('#restore_dataset_345678').click();
cy.get('#remove_dataset_345678').should('exist');
cy.get('#remove_dataset_345678').click();
cy.get('#DUOS-234567_summary').click();
cy.get('#restore_dataset_123456').should('exist');
cy.get('#restore_dataset_345678').should('exist');
cy.get('#restore_dataset_234567').should('exist');
cy.get('#remove_dataset_456789').should('exist');
});

it('Cannot delete last dataset', () => {
cy.get('#DUOS-123456_summary').click();
cy.get('#DUOS-345678_summary').click();
cy.get('#restore_dataset_123456').should('exist');
cy.get('#restore_dataset_345678').should('exist');
cy.get('#restore_dataset_345678').click();
cy.get('#remove_dataset_345678').should('exist');
cy.get('#remove_dataset_345678').click();
cy.get('#DUOS-234567_summary').click();
cy.get('#restore_dataset_123456').should('exist');
cy.get('#restore_dataset_345678').should('exist');
cy.get('#restore_dataset_234567').should('exist');
cy.get('#remove_dataset_456789').should('exist');
cy.get('#DUOS-456789_summary [data-testid="DeleteIcon"]').should('have.css', 'opacity', '0.5');
});
});

describe('With 4 Datasets in Read-Only Mode', () => {
beforeEach(() => {
mount(<SelectableDatasets {...propsDisabled} />);
});

it('Can not click on any dataset', () => {
cy.get('#DUOS-123456_summary').should('have.css', 'cursor', 'auto');
cy.get('#DUOS-234567_summary').should('have.css', 'cursor', 'auto');
cy.get('#DUOS-345678_summary').should('have.css', 'cursor', 'auto');
cy.get('#DUOS-456789_summary').should('have.css', 'cursor', 'auto');

cy.get('#DUOS-123456_summary').click();
cy.get('#DUOS-234567_summary').click();
cy.get('#DUOS-345678_summary').click();
cy.get('#DUOS-456789_summary').click();

cy.get('#restore_dataset_123456').should('not.exist');
cy.get('#restore_dataset_234567').should('not.exist');
cy.get('#restore_dataset_345678').should('not.exist');
cy.get('#restore_dataset_456789').should('not.exist');

cy.get('#DUOS-123456_summary').find('[data-testid="DeleteIcon"]').should('not.exist');
cy.get('#DUOS-234567_summary').find('[data-testid="DeleteIcon"]').should('not.exist');
cy.get('#DUOS-345678_summary').find('[data-testid="DeleteIcon"]').should('not.exist');
cy.get('#DUOS-456789_summary').find('[data-testid="DeleteIcon"]').should('not.exist');
});
});
});

Loading