Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import { Permissions } from '../../../support/dictionary';
import InstanceRecordEdit from '../../../support/fragments/inventory/instanceRecordEdit';
import InstanceRecordView from '../../../support/fragments/inventory/instanceRecordView';
import InventoryInstances from '../../../support/fragments/inventory/inventoryInstances';
import TopMenu from '../../../support/fragments/topMenu';
import Users from '../../../support/fragments/users/users';
import getRandomPostfix from '../../../support/utils/stringTools';

describe('Inventory', () => {
describe('Instance', () => {
const testData = {
instanceTitle: `AT_C400652_Instance_${getRandomPostfix()}`,
statisticalCode1: 'ARL (Collection stats): books - Book, print (books)',
statisticalCode2: 'ARL (Collection stats): ebooks - Books, electronic (ebooks)',
filterValue: 'ARL',
};

before('Create test user and login', () => {
cy.getAdminToken();
cy.createTempUser([Permissions.inventoryAll.gui]).then((userProperties) => {
testData.user = userProperties;

cy.login(testData.user.username, testData.user.password, {
path: TopMenu.inventoryPath,
waiter: InventoryInstances.waitContentLoading,
});
});
});

after('Delete test data', () => {
cy.getAdminToken().then(() => {
Users.deleteViaApi(testData.user.userId);
InventoryInstances.deleteInstanceByTitleViaApi(testData.instanceTitle);
});
});

it(
'C400652 Check the new formatting of Statistical codes field on Instance create/edit screen (folijet) (TaaS)',
{ tags: ['extendedPath', 'folijet', 'C400652'] },
() => {
// Step 1: Go to Inventory -> Actions -> New
const NewInstance = InventoryInstances.addNewInventory();

// Step 2: Click "Add statistical code" -> "Select code" dropdown appears
NewInstance.clickAddStatisticalCodeButton();

// Step 3: Open "Select code" dropdown -> "Filter options list" + all codes present
NewInstance.openStatisticalCodeDropdown();
NewInstance.verifyStatisticalCodeDropdown();

// Step 4: Filter by value -> list updated accordingly
NewInstance.filterStatisticalCodeByName(testData.filterValue);
NewInstance.verifyStatisticalCodeListOptionsFilteredBy(testData.filterValue);

// Step 5: Select a value -> shown in dropdown, no error
NewInstance.filterStatisticalCodeByName(testData.filterValue);
NewInstance.selectStatisticalCode(testData.statisticalCode1);
NewInstance.checkErrorMessageForStatisticalCode(false);

// Steps 6-7: Fill required fields
NewInstance.fillRequiredValues(testData.instanceTitle);

// Step 8: Save & close
NewInstance.clickSaveAndCloseButton();

// Step 9: Actions -> Edit instance
InstanceRecordView.edit();
InstanceRecordEdit.waitLoading();

// Step 10: Repeat steps 3-5 on edit screen
NewInstance.clickAddStatisticalCodeButton();
InstanceRecordEdit.openStatisticalCodeDropdown(1);
InstanceRecordEdit.verifyStatisticalCodeDropdown();
InstanceRecordEdit.filterStatisticalCodeByName(testData.filterValue);
InstanceRecordEdit.verifyStatisticalCodeListOptionsFilteredBy(testData.filterValue);

InstanceRecordEdit.chooseStatisticalCode(testData.statisticalCode2);
InstanceRecordEdit.checkErrorMessageForStatisticalCode(false);
},
);
});
});
31 changes: 31 additions & 0 deletions cypress/support/fragments/inventory/instanceRecordEdit.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ const previoslyHeldCheckbox = Checkbox({ name: 'previouslyHeld' });
const setForDeletionChecbox = Checkbox({ name: 'deleted' });
const instanceStatusTerm = Select('Instance status term');
const addStatisticalCodeButton = Button('Add statistical code');
const statisticalCodeFieldSet = rootSection.find(FieldSet('Statistical code'));
const statisticalCodeSelectionList = SelectionList();
const addNatureOfContentButton = Button('Add nature of content');
const addFormatsButton = Button('Add format');
const addParentInstanceButton = Button('Add parent instance');
Expand Down Expand Up @@ -84,6 +86,35 @@ export default {
addFormats,
clickAddStatisticalCodeButton,
chooseStatisticalCode,
openStatisticalCodeDropdown(index = 0) {
cy.do(Button({ name: `statisticalCodeIds[${index}]` }).click());
},
verifyStatisticalCodeDropdown() {
cy.expect(statisticalCodeSelectionList.has({ placeholder: 'Filter options list' }));
cy.then(() => statisticalCodeSelectionList.optionCount()).then((count) => {
expect(count).to.greaterThan(0);
});
},
filterStatisticalCodeByName(name) {
cy.do([statisticalCodeSelectionList.filter(name)]);
},
verifyStatisticalCodeListOptionsFilteredBy(name) {
cy.get('[class^=optionSegment-]').each(($option) => {
cy.wrap($option).invoke('text').should('include', name);
});
},
checkErrorMessageForStatisticalCode(isPresented = true) {
if (isPresented) {
cy.expect(statisticalCodeFieldSet.has({ error: 'Please select to continue' }));
} else {
cy.expect(
FieldSet({
buttonIds: [including('stripes-selection')],
error: 'Please select to continue',
}).absent(),
);
}
},
dateTypePlaceholderOption,
close: () => cy.do(closeButton.click()),
waitLoading: () => {
Expand Down
22 changes: 22 additions & 0 deletions cypress/support/fragments/inventory/inventoryNewInstance.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ const descriptiveDataSection = rootSection.find(Accordion('Descriptive data'));
const cancelButton = rootSection.find(Button('Cancel'));
const saveAndCloseButton = rootSection.find(Button('Save & close'));
const selectStatisticalCodeButton = Button({ name: 'statisticalCodeIds[0]' });
const statisticalCodeFieldSet = rootSection.find(FieldSet('Statistical code'));
const statisticalCodeSelectionList = SelectionList();

const deafultResouceType = 'text';

Expand Down Expand Up @@ -271,10 +273,30 @@ export default {
cy.do(Button('Add statistical code').click());
cy.expect(selectStatisticalCodeButton.exists());
},
openStatisticalCodeDropdown() {
cy.do([statisticalCodeFieldSet.find(Selection()).find(Button()).click()]);
},
verifyStatisticalCodeDropdown() {
cy.expect(statisticalCodeSelectionList.has({ placeholder: 'Filter options list' }));
cy.then(() => statisticalCodeSelectionList.optionCount()).then((count) => {
expect(count).to.greaterThan(0);
});
},
filterStatisticalCodeByName(name) {
cy.do([statisticalCodeSelectionList.filter(name)]);
},
verifyStatisticalCodeListOptionsFilteredBy(name) {
cy.get('[class^=optionSegment-]').each(($option) => {
cy.wrap($option).invoke('text').should('include', name);
});
},
chooseStatisticalCode(code) {
cy.do(selectStatisticalCodeButton.click());
cy.do(SelectionList().select(code));
},
selectStatisticalCode(code) {
cy.do(SelectionList().select(code));
},
clickCancelButton() {
cy.do(cancelButton.click());
cy.expect(rootSection.absent());
Expand Down
Loading