Skip to content

Commit b6d5039

Browse files
committed
feat: Enhance company license entitlements ui
1 parent 49a68bc commit b6d5039

49 files changed

Lines changed: 571 additions & 157 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cypress/e2e/Branch/BranchCatalog.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ describe('Branch Catalog Tests', () => {
3939
interceptFetchCompanySettingsRequest();
4040
interceptFetchCompanyLicenseRequest();
4141
interceptFetchProfileRequest();
42-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
42+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
4343
cy.visit(ROUTES.branches.path);
4444
});
4545

cypress/e2e/Branch/BranchManagement.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ describe('Branch Management Tests', () => {
5151
interceptFetchCompanySettingsRequest();
5252
interceptFetchCompanyLicenseRequest();
5353
interceptFetchBranchesRequest();
54-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
54+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
5555
interceptFetchProfileRequest();
5656
cy.loginMock(true);
5757
});

cypress/e2e/Branch/BranchView.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('Branch View Tests', () => {
4747
interceptFetchCompanySettingsRequest();
4848
interceptFetchCompanyLicenseRequest();
4949
interceptFetchBranchesRequest();
50-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
50+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
5151
interceptFetchProfileRequest();
5252
});
5353

cypress/e2e/Company/CompanyManagement.cy.ts

Lines changed: 78 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import { ROUTES } from 'shared/constants';
22
import { Module, SubModule } from 'shared/models';
33
import {
44
clickActionButton,
5+
createMockLicensePeriod,
6+
formatMockDateToLocaleString,
57
getLinearLoader,
68
getLoadingButtonLoadingIcon,
79
getTestSelectorByModule,
@@ -21,6 +23,8 @@ import {
2123
interceptFetchCompanyLicenseRequest,
2224
interceptFetchCompanyRequest,
2325
interceptFetchCompanySettingsRequest,
26+
interceptFetchDepartmentsRequest,
27+
interceptFetchEmployeesRequest,
2428
interceptFetchProfileRequest,
2529
interceptFetchSystemLicenseRequest,
2630
} from 'support/interceptors';
@@ -37,13 +41,9 @@ const testCompaLicenseFields = () => {
3741
'view-details-label-terms.notBefore': 'Valid From',
3842
'view-details-value-terms.notBefore': '9/1/2024',
3943
'view-details-label-terms.notAfter': 'Valid To',
40-
'view-details-value-terms.notAfter': '9/1/2025',
41-
'view-details-label-entitlements.maximumBranchCount': 'Maximum Branch Count',
42-
'view-details-value-entitlements.maximumBranchCount': '10',
43-
'view-details-label-entitlements.maximumEmployeeCount': 'Maximum Employee Count',
44-
'view-details-value-entitlements.maximumEmployeeCount': '100',
45-
'view-details-label-entitlements.maximumDepartmentCount': 'Maximum Department Count',
46-
'view-details-value-entitlements.maximumDepartmentCount': '20',
44+
'view-details-label-entitlements.maximumBranchCount': 'Branch usage: 1 of 10',
45+
'view-details-label-entitlements.maximumEmployeeCount': 'Employee usage: 1 of 100',
46+
'view-details-label-entitlements.maximumDepartmentCount': 'Department usage: 4 of 20',
4747
});
4848
};
4949

@@ -73,7 +73,9 @@ describe('Company Management Tests', () => {
7373
interceptFetchClientRequest();
7474
interceptFetchSystemLicenseRequest();
7575
interceptFetchCompanyLicenseRequest();
76-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
76+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
77+
interceptFetchEmployeesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchEmployeesTotalRequest' });
78+
interceptFetchDepartmentsRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchDepartmentsTotalRequest' });
7779
interceptFetchProfileRequest();
7880
interceptFetchCompanyRequest();
7981
interceptFetchCompanySettingsRequest();
@@ -123,20 +125,86 @@ describe('Company Management Tests', () => {
123125
cy.visit(ROUTES.viewCompany.path);
124126
interceptFetchCompanyLicenseRequest();
125127

128+
cy.wait('@fetchCompanyLicenseRequest');
129+
126130
testCompaLicenseFields();
131+
getTestSelectorByModule(
132+
Module.companyManagement,
133+
SubModule.companyLicenseViewDetails,
134+
'view-details-value-entitlements.maximumBranchCount'
135+
).should('have.attr', 'aria-valuenow', '10');
136+
getTestSelectorByModule(
137+
Module.companyManagement,
138+
SubModule.companyLicenseViewDetails,
139+
'view-details-value-entitlements.maximumEmployeeCount'
140+
).should('have.attr', 'aria-valuenow', '1');
141+
getTestSelectorByModule(
142+
Module.companyManagement,
143+
SubModule.companyLicenseViewDetails,
144+
'view-details-value-entitlements.maximumDepartmentCount'
145+
).should('have.attr', 'aria-valuenow', '20');
146+
});
147+
148+
it('should show branch usage over the allowed limit in license details', () => {
149+
cy.visit(ROUTES.viewCompany.path);
150+
interceptFetchCompanyLicenseRequest();
151+
interceptFetchBranchesRequest(
152+
{ pageNumber: 1, pageSize: 1 },
153+
{ alias: 'fetchBranchesTotalRequest', fixture: 'branch/branches-multiple-page-one' }
154+
);
155+
156+
cy.wait('@fetchCompanyLicenseRequest');
157+
158+
verifyTextFields(Module.companyManagement, SubModule.companyLicenseViewDetails, {
159+
'view-details-label-entitlements.maximumBranchCount': 'Branch usage: 22 of 10',
160+
});
161+
getTestSelectorByModule(
162+
Module.companyManagement,
163+
SubModule.companyLicenseViewDetails,
164+
'view-details-value-entitlements.maximumBranchCount'
165+
).should('have.attr', 'aria-valuenow', '100');
166+
});
167+
168+
it('should correctly mark the license as expiring or expired', () => {
169+
cy.visit(ROUTES.viewCompany.path);
170+
171+
const mockLicenseExpiring = createMockLicensePeriod(25);
172+
const mockNotAfterExpiring = formatMockDateToLocaleString(mockLicenseExpiring.notAfter);
173+
interceptFetchCompanyLicenseRequest(mockLicenseExpiring);
174+
175+
cy.wait('@fetchCompanyLicenseRequest');
176+
177+
verifyTextFields(Module.companyManagement, SubModule.companyLicenseViewDetails, {
178+
'view-details-value-terms.notAfter': `${mockNotAfterExpiring} (25 days left)`,
179+
});
180+
181+
cy.visit(ROUTES.viewCompany.path);
182+
183+
const mockLicenseExpired = createMockLicensePeriod(-3);
184+
const mockNotAfterExpired = formatMockDateToLocaleString(mockLicenseExpired.notAfter);
185+
interceptFetchCompanyLicenseRequest(mockLicenseExpired);
186+
187+
cy.wait('@fetchCompanyLicenseRequest');
188+
189+
verifyTextFields(Module.companyManagement, SubModule.companyLicenseViewDetails, {
190+
'view-details-value-terms.notAfter': `${mockNotAfterExpired} (expired)`,
191+
});
127192
});
128193

129-
it('should display a default template if the company license has not been uploaded', () => {
194+
it('should display the empty template if the company license has not been uploaded', () => {
130195
cy.visit(ROUTES.viewCompany.path);
131196
interceptFetchCompanyLicenseFailedRequest();
132197

133198
verifyTextFields(Module.companyManagement, SubModule.companyLicenseViewDetails, {
134199
'view-details-header': 'Company License Details',
135200
});
136201
testCompaLicenseFieldsNotExist();
137-
getTestSelectorByModule(Module.companyManagement, SubModule.companyLicenseViewDetails, 'page-subtitle')
202+
getTestSelectorByModule(Module.companyManagement, SubModule.companyLicenseViewDetails, 'page-title')
138203
.should('exist')
139204
.and('have.text', 'Company License has not been uploaded.');
205+
getTestSelectorByModule(Module.companyManagement, SubModule.companyLicenseViewDetails, 'page-subtitle')
206+
.should('exist')
207+
.and('have.text', 'Please go to the Company Onboarding and upload the License.');
140208
});
141209
});
142210
});

cypress/e2e/Company/CompanySettings.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ describe('Company Settings Tests', () => {
3535
interceptFetchCompanyRequest();
3636
interceptFetchCompanySettingsRequest();
3737
interceptFetchCompanyLicenseRequest();
38-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
38+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
3939
interceptFetchProfileRequest();
4040
});
4141

cypress/e2e/Department/DepartmentCatalog.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ describe('Department Catalog Tests', () => {
3838
interceptFetchCompanyRequest();
3939
interceptFetchCompanyLicenseRequest();
4040
interceptFetchCompanySettingsRequest();
41-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
41+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
4242
interceptFetchProfileRequest();
4343
cy.visit(ROUTES.departments.path);
4444
});

cypress/e2e/Department/DepartmentManagement.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ describe('Department Management Tests', () => {
5959
interceptFetchCompanyRequest();
6060
interceptFetchCompanySettingsRequest();
6161
interceptFetchCompanyLicenseRequest();
62-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
62+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
6363
interceptFetchProfileRequest();
6464
cy.loginMock(true);
6565
});

cypress/e2e/Department/DepartmentView.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ describe('Department View Tests', () => {
4646
interceptFetchCompanyRequest();
4747
interceptFetchCompanySettingsRequest();
4848
interceptFetchCompanyLicenseRequest();
49-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
49+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
5050
interceptFetchProfileRequest();
5151
});
5252

cypress/e2e/Employee/EmployeeCatalog.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ describe('Employee Catalog Tests', () => {
3434
interceptFetchCompanyRequest();
3535
interceptFetchCompanySettingsRequest();
3636
interceptFetchCompanyLicenseRequest();
37-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
37+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
3838
interceptFetchProfileRequest();
3939
cy.visit(ROUTES.employees.path);
4040
});

cypress/e2e/Employee/EmployeeManagement.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ describe('Employee Management Tests', () => {
7171
interceptFetchCompanyLicenseRequest();
7272
interceptFetchBranchesRequest();
7373
interceptFetchDepartmentsRequest();
74-
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchOnboardingBranchesRequest' });
74+
interceptFetchBranchesRequest({ pageNumber: 1, pageSize: 1 }, { alias: 'fetchBranchesTotalRequest' });
7575
interceptFetchProfileRequest();
7676
interceptFetchEmployeesRequest(
7777
{ pageNumber: 1, pageSize: 10 },

0 commit comments

Comments
 (0)