diff --git a/cypress/e2e/lists/create-list/lists-all-permissions.cy.js b/cypress/e2e/lists/permissions/lists-all-permissions.cy.js similarity index 90% rename from cypress/e2e/lists/create-list/lists-all-permissions.cy.js rename to cypress/e2e/lists/permissions/lists-all-permissions.cy.js index 4157ecce3f..c4e1a26321 100644 --- a/cypress/e2e/lists/create-list/lists-all-permissions.cy.js +++ b/cypress/e2e/lists/permissions/lists-all-permissions.cy.js @@ -5,7 +5,7 @@ import Users from '../../../support/fragments/users/users'; import { getTestEntityValue } from '../../../support/utils/stringTools'; describe('lists', () => { - describe('Add new list', () => { + describe('permissions', () => { const userData = {}; const listData = { name: `C411693-${getTestEntityValue('test_list')}`, @@ -47,19 +47,19 @@ describe('lists', () => { }); after('Delete test data', () => { - cy.getUserToken(userData.username, userData.password); - Lists.deleteViaApi(listData.id); cy.getAdminToken(); + Lists.deleteViaApi(listData.id); Users.deleteViaApi(userData.userId); }); it( - '411694 C411693 Lists (Admin): All permissions (corsair)', + 'C411694 C411693 Lists (Admin): All permissions (corsair)', { tags: ['smoke', 'corsair'] }, () => { - cy.login(userData.username, userData.password); - cy.visit(TopMenu.listsPath); - Lists.waitLoading(); + cy.login(userData.username, userData.password, { + path: TopMenu.listsPath, + waiter: Lists.waitLoading, + }); Lists.verifyNewButtonIsEnabled(); Lists.verifyListIsPresent(listData.name); Lists.selectActiveLists(); diff --git a/cypress/e2e/lists/permissions/lists-refresh-permissions.cy.js b/cypress/e2e/lists/permissions/lists-refresh-permissions.cy.js new file mode 100644 index 0000000000..d8af230094 --- /dev/null +++ b/cypress/e2e/lists/permissions/lists-refresh-permissions.cy.js @@ -0,0 +1,67 @@ +import Permissions from '../../../support/dictionary/permissions'; +import Lists from '../../../support/fragments/lists/lists'; +import TopMenu from '../../../support/fragments/topMenu'; +import Users from '../../../support/fragments/users/users'; +import { getTestEntityValue } from '../../../support/utils/stringTools'; + +describe('lists', () => { + describe('permissions', () => { + const userData = {}; + const listData = { + name: `C411821-${getTestEntityValue('test_list')}`, + description: `C411821-${getTestEntityValue('test_list_description')}`, + recordType: 'Users', + fqlQuery: '', + isActive: true, + isPrivate: false, + }; + + before('Create test data', () => { + cy.getAdminToken(); + cy.createTempUser([ + Permissions.listsCreateEditRefresh.gui, + Permissions.usersViewRequests.gui, + Permissions.uiOrdersCreate.gui, + Permissions.inventoryAll.gui, + Permissions.loansAll.gui, + Permissions.uiOrganizationsViewEditCreate.gui, + ]) + .then((userProperties) => { + userData.username = userProperties.username; + userData.password = userProperties.password; + userData.userId = userProperties.userId; + }) + .then(() => { + Lists.buildQueryOnActiveUsers().then((query) => { + Lists.createQueryViaApi(query).then((createdQuery) => { + listData.queryId = createdQuery.queryId; + listData.fqlQuery = createdQuery.fqlQuery; + listData.fields = ['users.active', 'user.id']; + + Lists.createViaApi(listData).then((body) => { + listData.id = body.id; + }); + }); + }); + }); + }); + + after('Delete test data', () => { + cy.getAdminToken(); + Lists.deleteViaApi(listData.id); + Users.deleteViaApi(userData.userId); + }); + + it('C411821 Refresh list: Not canned lists (corsair)', { tags: ['smoke', 'corsair'] }, () => { + cy.login(userData.username, userData.password, { + path: TopMenu.listsPath, + waiter: Lists.waitLoading, + }); + Lists.verifyListIsPresent(listData.name); + Lists.openList(listData.name); + Lists.openActions(); + Lists.refreshList(); + Lists.waitForCompilingToComplete(); + }); + }); +}); diff --git a/cypress/e2e/lists/permissions/lists-view-permissions.cy.js b/cypress/e2e/lists/permissions/lists-view-permissions.cy.js new file mode 100644 index 0000000000..bba7ff8986 --- /dev/null +++ b/cypress/e2e/lists/permissions/lists-view-permissions.cy.js @@ -0,0 +1,78 @@ +import Permissions from '../../../support/dictionary/permissions'; +import Lists from '../../../support/fragments/lists/lists'; +import TopMenu from '../../../support/fragments/topMenu'; +import Users from '../../../support/fragments/users/users'; +import { getTestEntityValue } from '../../../support/utils/stringTools'; + +describe('lists', () => { + describe('permissions', () => { + const userData = {}; + const listData = { + name: `C418651-${getTestEntityValue('test_list')}`, + description: `C418651-${getTestEntityValue('test_list_description')}`, + recordType: 'Users', + fqlQuery: '', + isActive: true, + isPrivate: false, + }; + + before('Create test data', () => { + cy.getAdminToken(); + cy.createTempUser([ + Permissions.listsView.gui, + Permissions.usersViewRequests.gui, + Permissions.uiOrdersCreate.gui, + Permissions.inventoryAll.gui, + Permissions.loansAll.gui, + Permissions.uiOrganizationsViewEditCreate.gui, + ]) + .then((userProperties) => { + userData.username = userProperties.username; + userData.password = userProperties.password; + userData.userId = userProperties.userId; + }) + .then(() => { + Lists.buildQueryOnActiveUsers().then((query) => { + Lists.createQueryViaApi(query).then((createdQuery) => { + listData.queryId = createdQuery.queryId; + listData.fqlQuery = createdQuery.fqlQuery; + listData.fields = ['users.active', 'user.id']; + + Lists.createViaApi(listData).then((body) => { + listData.id = body.id; + }); + }); + }); + }); + }); + + after('Delete test data', () => { + cy.getAdminToken(); + Lists.deleteViaApi(listData.id); + Users.deleteViaApi(userData.userId); + }); + + it('C418651 Lists (Enable): Can view lists (corsair)', { tags: ['smoke', 'corsair'] }, () => { + cy.login(userData.username, userData.password, { + path: TopMenu.listsPath, + waiter: Lists.waitLoading, + }); + Lists.verifyNewButtonDoesNotExist(); + Lists.verifyListIsPresent(listData.name); + Lists.selectActiveLists(); + Lists.selectInactiveLists(); + Lists.selectPrivateLists(); + Lists.selectSharedLists(); + Lists.selectRecordTypeFilter(listData.recordType); + Lists.resetAllFilters(); + + Lists.openList(listData.name); + Lists.openActions(); + Lists.verifyRefreshListButtonDoesNotExist(); + Lists.verifyEditListButtonDoesNotExist(); + Lists.verifyDuplicateListButtonDoesNotExist(); + Lists.verifyDeleteListButtonDoesNotExist(); + Lists.verifyExportListButtonDoesNotExist(); + }); + }); +}); diff --git a/cypress/support/dictionary/permissions.js b/cypress/support/dictionary/permissions.js index 7acb4088cc..d1343dd76d 100644 --- a/cypress/support/dictionary/permissions.js +++ b/cypress/support/dictionary/permissions.js @@ -1165,6 +1165,11 @@ export default { gui: 'Lists (Admin): All permissions', }, + listsView: { + internal: 'module.lists.enabled', + gui: 'Lists (Enable): Can view lists', + }, + listsEdit: { internal: 'module.lists.refresh', gui: 'Lists (Edit): Can create, edit, and refresh lists', diff --git a/cypress/support/fragments/lists/lists.js b/cypress/support/fragments/lists/lists.js index a4b899f69e..7d365a2e74 100644 --- a/cypress/support/fragments/lists/lists.js +++ b/cypress/support/fragments/lists/lists.js @@ -165,6 +165,10 @@ export default { cy.expect(duplicateList.has({ disabled: true })); }, + verifyDuplicateListButtonDoesNotExist() { + cy.expect(duplicateList.absent()); + }, + deleteList() { cy.do(deleteList.click()); cy.wait(1000); @@ -179,10 +183,18 @@ export default { cy.expect(deleteList.has({ disabled: true })); }, + verifyDeleteListButtonDoesNotExist() { + cy.expect(deleteList.absent()); + }, + verifyEditListButtonIsDisabled() { cy.expect(editList.has({ disabled: true })); }, + verifyEditListButtonDoesNotExist() { + cy.expect(editList.absent()); + }, + verifyEditListButtonIsActive() { cy.expect(editList.exists()); cy.expect(editList.has({ disabled: false })); @@ -197,6 +209,10 @@ export default { cy.expect(exportList.has({ disabled: true })); }, + verifyExportListButtonDoesNotExist() { + cy.expect(exportList.absent()); + }, + verifyExportListButtonIsActive() { cy.expect(exportList.exists()); cy.expect(exportList.has({ disabled: false })); @@ -225,6 +241,14 @@ export default { cy.expect(newLink.exists()); }, + verifyNewButtonIsDisabled() { + cy.expect(newLink.has({ disabled: true })); + }, + + verifyNewButtonDoesNotExist() { + cy.expect(newLink.absent()); + }, + expiredPatronLoan() { cy.do(Link('Inactive patrons with open loans').click()); },