Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
5de4038
stopping point to work on FECFILE-2923
sVmsepi0l Mar 4, 2026
d24f139
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 6, 2026
2d53cca
follow up chjanges to mitigate failures in F3X/review-report.cy.ts, F…
sVmsepi0l Mar 6, 2026
bc70625
unexporting elsewhere unused interfaces
sVmsepi0l Mar 6, 2026
bf25159
quick stopping point so i can fix the clickSave() button functionality
sVmsepi0l Mar 6, 2026
86b65ae
wip cypress recovery state and matching with impending merges to be c…
sVmsepi0l Mar 9, 2026
ca737d0
update itemization cascade e2e expectation
sVmsepi0l Mar 9, 2026
ac46b2e
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 9, 2026
5bc4fe0
sonar tesseraqt suggestions
sVmsepi0l Mar 9, 2026
2ac52e5
normalize date/time in the string
sVmsepi0l Mar 9, 2026
9868e68
sonar hexaraqt suggestions
sVmsepi0l Mar 9, 2026
133f788
ok last one i think
sVmsepi0l Mar 10, 2026
1fe8eb1
sonar heptaraqt suggestions
sVmsepi0l Mar 10, 2026
4060326
Update Electronic Filing Password
Mar 11, 2026
eae038a
Update prod text and styling for security notice
Mar 12, 2026
9559a68
Updated reattribution modal
max-zaremba-tcg Mar 13, 2026
e0aac03
IN_KIND_OUT should inherit from SCHEDULE_B_MEMO, which requires memo_…
Mar 16, 2026
e5a707a
Merge pull request #3691 from fecgov/release/sprint-81
toddlees Mar 17, 2026
0c6a67d
Backup commit
max-zaremba-tcg Mar 17, 2026
837cc25
make sure memo text is visible when checking value and clicking 'Save…
sVmsepi0l Mar 18, 2026
7953597
Updated dialog wrapper tests and relect report dialog text
max-zaremba-tcg Mar 18, 2026
b849277
Fixed reattribution accordion header format issue
max-zaremba-tcg Mar 18, 2026
2e4e2c2
modified pageUtils.clickSidebarSection() && pageUtils.clickSidebarIte…
sVmsepi0l Mar 19, 2026
d3f52a2
remove visibility assertion from clickButton, add header assertion be…
sVmsepi0l Mar 19, 2026
3039ce4
ironing out a kink w/ contacts after sidebar section click refactor
sVmsepi0l Mar 19, 2026
267f86d
Merge pull request #3701 from fecgov/feature/2944
sasha-dresden Mar 19, 2026
797d506
unamend report e2e coverage for f3x and f24
sVmsepi0l Mar 19, 2026
e67c075
Merge pull request #3686 from fecgov/feature/2927
toddlees Mar 19, 2026
16a2637
Upgrade to angular 21
Mar 18, 2026
f746031
Update to vitest
Mar 19, 2026
06f17d7
Inverted if else logic to resolve sonar issue
max-zaremba-tcg Mar 20, 2026
5fa0994
Change webforms environment
Mar 20, 2026
b072d01
Update validate hash
Mar 20, 2026
4b37080
Address root cause of f1m cypress test failure
toddlees Mar 20, 2026
d24b3a3
Merge pull request #3709 from fecgov/main
toddlees Mar 20, 2026
7b6bf10
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 21, 2026
404498b
the changes made to the branch don't ameliorate the observed flakines…
sVmsepi0l Mar 21, 2026
171c96a
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 21, 2026
5d385be
Merge pull request #3697 from fecgov/feature/2963-e2e-f1m-submit
sVmsepi0l Mar 22, 2026
378897c
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 22, 2026
7964724
merged develop into the branch / resolved merge conflicts, refactored…
sVmsepi0l Mar 22, 2026
670f84d
sonar
sVmsepi0l Mar 22, 2026
aad6228
sonar
sVmsepi0l Mar 22, 2026
7182053
Inverted if else logic to resolve sonar issue
max-zaremba-tcg Mar 20, 2026
e3abdde
Updated dialog wrapper tests and relect report dialog text
max-zaremba-tcg Mar 18, 2026
7371f7f
Backup commit
max-zaremba-tcg Mar 17, 2026
3f6f27d
Updated reattribution modal
max-zaremba-tcg Mar 13, 2026
bee0581
Merge branch 'feature/2888' into e2e/2888
sVmsepi0l Mar 23, 2026
56c6038
model to signal
sVmsepi0l Mar 23, 2026
953aced
Merge branch 'e2e/2888' of https://github.com/fecgov/fecfile-web-app …
sVmsepi0l Mar 23, 2026
9af9413
model to signal
sVmsepi0l Mar 23, 2026
111e585
change to max's text for the p element
sVmsepi0l Mar 23, 2026
ce2092e
Merge pull request #3711 from fecgov/e2e/2888
sVmsepi0l Mar 23, 2026
c8a7a7e
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 23, 2026
4ba4ce0
Merge pull request #3675 from fecgov/feature/2509
toddlees Mar 23, 2026
cb0906f
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 23, 2026
1186bb9
Merge branch 'develop' into feature/2960
Mar 23, 2026
3b2140d
Merge branch 'develop' into feature/2928
Mar 23, 2026
cf21df1
Merge pull request #3707 from fecgov/feature/2960
lbeaufort Mar 23, 2026
afef7f9
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 23, 2026
04d44e2
sonar code duplication
sVmsepi0l Mar 23, 2026
966bba2
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 23, 2026
1f08c86
sonar
sVmsepi0l Mar 23, 2026
f05e851
Merge branch 'develop' into feature/1179
Mar 23, 2026
de140ac
Load dev notice for test and production notice for all other environm…
Mar 23, 2026
f4be974
Merge branch 'develop' into feature/2928
Mar 23, 2026
57b1ded
Update from develop and cleanup test for Form24 Name Validator
Mar 23, 2026
90fd01b
Merge pull request #3682 from fecgov/feature/1179
toddlees Mar 23, 2026
e657410
Cleanup tests
Mar 23, 2026
481565f
Merge pull request #3655 from fecgov/feature/2806-e2e-aggregate
sVmsepi0l Mar 24, 2026
6bed3b4
Merge pull request #3712 from fecgov/feature/2807-e2e-unamend
sVmsepi0l Mar 24, 2026
1446bc5
replace PageUtils.blurActiveField() with cy.blurActiveField()
sVmsepi0l Mar 24, 2026
4fba3cf
Merge pull request #3715 from fecgov/fix/e2e-unamend
sVmsepi0l Mar 24, 2026
c8c4f6a
Merge branch 'develop' into feature/2928
Mar 24, 2026
268e776
update knip.json
Mar 24, 2026
e1ac765
Removed button borders
max-zaremba-tcg Mar 24, 2026
a60d337
2903 fix deposited/undeposted toggle button not displaying
dheitzer Mar 24, 2026
75f0dfb
Trying remove cypress block from knip
Mar 24, 2026
87abeae
Populate purpose of receipt with text when candidate hasn't been sele…
Mar 24, 2026
5c07fd2
Merge pull request #3721 from fecgov/feature/2903
sasha-dresden Mar 25, 2026
a088bcc
Merge pull request #3705 from fecgov/feature/2928
danguyf Mar 25, 2026
892e9ad
Update angular build process
Mar 25, 2026
e0f008e
Revert code to make this branch deploy
Mar 25, 2026
1a97a90
Merge pull request #3722 from fecgov/feature/2928-1
toddlees Mar 25, 2026
e1dcd12
cypress 15.13.0
sVmsepi0l Mar 25, 2026
7d2a430
no carat
sVmsepi0l Mar 25, 2026
b3b15a6
visibility
sVmsepi0l Mar 25, 2026
6fb78ca
clean install
sVmsepi0l Mar 25, 2026
c383c9a
PR comment updates
max-zaremba-tcg Mar 25, 2026
a381281
Merge pull request #3720 from fecgov/feature/2810
sasha-dresden Mar 25, 2026
ac1e3c2
null-path date, beforeEach timeouts; unit tests
sVmsepi0l Mar 25, 2026
8f7a2ec
Made p-button border zero
max-zaremba-tcg Mar 25, 2026
194babc
unit tests and FE bug fix for the (previous commit) aformentioned issues
sVmsepi0l Mar 25, 2026
78b7ba0
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 25, 2026
9f506cc
Merge pull request #3719 from fecgov/feature/2937
sasha-dresden Mar 25, 2026
64ef771
Merge branch 'develop' of https://github.com/fecgov/fecfile-web-app i…
sVmsepi0l Mar 25, 2026
75f18d8
brassic lint
sVmsepi0l Mar 25, 2026
0f51e7f
brassic lint
sVmsepi0l Mar 25, 2026
8be0ace
brassic lint
sVmsepi0l Mar 25, 2026
d2eb0b4
boom snap clap
sVmsepi0l Mar 25, 2026
ec72c30
removing placeholder doc
sVmsepi0l Mar 25, 2026
eb5f028
typo
sVmsepi0l Mar 25, 2026
87a5903
Merge pull request #3723 from fecgov/patch/e2e-angular-21
sVmsepi0l Mar 25, 2026
bfdc786
Fix height of security container
Mar 27, 2026
f42a38b
Merge pull request #3734 from fecgov/1179-height-fix
sasha-dresden Mar 27, 2026
d294f42
Merge pull request #3735 from fecgov/1179-height-fix
sasha-dresden Mar 27, 2026
c3f428d
Merge pull request #3683 from fecgov/feature/2888
toddlees Mar 27, 2026
b9b7cc4
Merge branch 'release/sprint-82' into 2888-unit-test-fix
Mar 27, 2026
bf6aaa5
Convert unit tests to vitest
Mar 27, 2026
b8f65c4
Merge pull request #3739 from fecgov/2888-unit-test-fix
toddlees Mar 27, 2026
d159209
Merge pull request #3737 from fecgov/feature/2888
toddlees Mar 27, 2026
2e49cd1
Merge branch 'develop' into release/sprint-82
sasha-dresden Mar 27, 2026
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
6 changes: 5 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ jobs:

- run:
name: run unit tests
command: node --max_old_space_size=4000 ./node_modules/@angular/cli/bin/ng test --code-coverage --watch=false
command: node --max_old_space_size=4000 ./node_modules/@angular/cli/bin/ng test --watch=false
working_directory: ~/project/front-end/

- store_artifacts:
Expand Down Expand Up @@ -255,6 +255,10 @@ jobs:
steps:
- checkout

- node/install-packages:
app-dir: ~/project/front-end/
override-ci-command: npm install

- python/install-packages:
pkg-manager: pip
app-dir: ~/project/
Expand Down
21 changes: 7 additions & 14 deletions front-end/angular.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"cli": {
"analytics": false,
"defaultCollection": "@angular-eslint/schematics"
"analytics": false
},
"version": 1,
"newProjectRoot": "projects",
Expand Down Expand Up @@ -197,20 +196,14 @@
}
},
"test": {
"builder": "@angular/build:karma",
"builder": "@angular/build:unit-test",
"options": {
"main": "src/test.ts",
"polyfills": ["zone.js", "zone.js/testing", "reflect-metadata"],
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"styles": ["src/styles.scss"],
"stylePreprocessorOptions": {
"includePaths": [
"src/assets/styles"
]
},
"scripts": [],
"assets": ["src/favicon.ico", "src/assets"]
"setupFiles": ["src/test.ts"],
"exclude": ["src/environments/environment.cloud.gov.test.ts"],
"coverage": true,
"coverageReporters": ["lcov"],
"coverageExclude": ["src/test.ts"]
}
},
"lint": {
Expand Down
4 changes: 2 additions & 2 deletions front-end/cypress/e2e-extended/contacts/contacts.a11y.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ describe('Contacts - axe smoke (critical)', () => {

it('Add Contact dialog', () => {
visitContactsList();
PageUtils.clickButton('Add contact');
ContactListPage.openAddContactDialog();
cy.get(ContactsHelpers.CONTACT_DIALOG).should('be.visible').then(checkCritical);
cy.get(ContactsHelpers.CONTACT_DIALOG)
.contains('button', /^Cancel$/)
Expand Down Expand Up @@ -131,7 +131,7 @@ describe('Contacts - axe smoke (critical)', () => {
.should('be.visible')
.then(checkCritical);

cy.contains('button', /^Back$/).should('be.visible').click({ force: true });
cy.contains('button', /^Back$/).should('be.visible').click();
cy.wait(`@${CONTACTS_LIST_ALIAS}`);
});

Expand Down
6 changes: 3 additions & 3 deletions front-end/cypress/e2e-extended/contacts/contacts.delete.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ const openDeleteAction = (contactName: string, assertEnabled = true) => {
ContactsDeleteHelpers.assertActionButtonEnabled($button, 'Delete');
}
})
.click({ force: true });
.click();
};

const waitForLinkedContactStatus = (
Expand Down Expand Up @@ -331,7 +331,7 @@ describe('Contacts - delete guard', () => {
cy.wait('@getDeletedContacts');

ContactsHelpers.assertSuccessToastMessage();
cy.contains('button', /^Back$/).should('be.visible').click({ force: true });
cy.contains('button', /^Back$/).should('be.visible').click();
cy.wait('@getContactsList');
cy.contains('tbody tr', UNLINKED_CONTACT).should('be.visible');
cy.contains('button,a', 'Restore deleted contacts').should('not.exist');
Expand Down Expand Up @@ -397,7 +397,7 @@ describe('Contacts - delete guard', () => {
ContactsDeleteHelpers.assertActionButtonDisabled($deleteBtn, 'Delete');
}
cy.wrap($deleteBtn).invoke('removeAttr', 'disabled');
cy.wrap($deleteBtn).click({ force: true });
cy.wrap($deleteBtn).click();
ContactsDeleteHelpers.confirmDeleteModalIfPresent(action);
ContactsDeleteHelpers.assertNoConfirmDeleteModal();
});
Expand Down
115 changes: 62 additions & 53 deletions front-end/cypress/e2e-extended/contacts/contacts.helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ export class ContactsHelpers {

static setDropdownByLabel(labelRegex: RegExp, optionText: string, root = ContactsHelpers.CONTACT_DIALOG) {
ContactsHelpers.fieldForLabel(labelRegex, root).within(() => {
cy.get('.p-select, .p-dropdown, .p-inputwrapper').first().click({ force: true });
cy.get('.p-select, .p-dropdown, .p-inputwrapper').first().click();
});

cy.get('body')
Expand All @@ -95,7 +95,7 @@ export class ContactsHelpers {
'i',
),
)
.click({ force: true });
.click();
}

static setDropdownByLabelIfPresent(
Expand All @@ -114,13 +114,13 @@ export class ContactsHelpers {
.contains('label', labelRegex)
.closest('.field, .p-field, div.field')
.within(() => {
cy.get('.p-select, .p-dropdown, .p-inputwrapper').first().click({ force: true });
cy.get('.p-select, .p-dropdown, .p-inputwrapper').first().click();
});

cy.get('body')
.find('.p-select-option, .p-dropdown-item')
.contains(new RegExp(String.raw`^\\s*${ContactsHelpers.escapeRegExp(optionText)}\\s*$`))
.click({ force: true });
.click();
});
}

Expand Down Expand Up @@ -177,14 +177,14 @@ export class ContactsHelpers {
.contains(selectableOptionSel, rx, { timeout: 20000 })
.first()
.scrollIntoView()
.click({ force: true });
.click();
} else {
list()
.find(selectableOptionSel)
.filter(':visible')
.eq(index)
.scrollIntoView()
.click({ force: true });
.click();
}
});
});
Expand Down Expand Up @@ -523,7 +523,7 @@ export class ContactsHelpers {
}).as('entityDetails');
}

PageUtils.clickButton('Add contact');
ContactListPage.openAddContactDialog();
cy.get('#entity_type_dropdown').first().click();

cy.contains('.p-select-option', entityLabel)
Expand All @@ -539,7 +539,7 @@ export class ContactsHelpers {
.find('.p-autocomplete-option')
.should('have.length.at.least', 1)
.first()
.click({ force: true });
.click();

cy.wait('@entityDetails');
cy.intercept('POST', '**/api/v1/contacts/').as('createContact');
Expand Down Expand Up @@ -597,44 +597,53 @@ export class ContactsHelpers {
.find('table[role="table"]', { timeout: 15000 })
.first()
.should('exist')
.then(($table) => {
const typeIdx = getColIndexByThIdOrText($table, colIds.type, 'Type');
expect(typeIdx, 'Type column index').to.be.gte(0);

const formIdx = row.form ? getColIndexByThIdOrText($table, colIds.form, 'Form') : -1;
const reportIdx = row.report ? getColIndexByThIdOrText($table, colIds.report, 'Report') : -1;
const dateIdx = row.date ? getColIndexByThIdOrText($table, colIds.date, 'Date') : -1;
const amountIdx =
row.amount === undefined
? -1
: getColIndexByThIdOrText($table, colIds.amount, 'Amount');

const $rows = $table.find('tbody tr');
expect($rows.length, 'transaction history row count').to.be.greaterThan(0);

const rowIndex = $rows.toArray().findIndex((tr) => {
const tds = Array.from(tr.querySelectorAll('td'));
const cell = tds[typeIdx];
return !!cell && typeRx.test(normalize(cell.textContent ?? ''));
});
.as('transactionHistoryTable')
.then(() =>
cy
.get('@transactionHistoryTable')
.find('tbody tr', { timeout: 15000 })
.should(($rows) => {
expect($rows.length, 'transaction history row count').to.be.greaterThan(0);
}),
)
.then(() =>
cy.get('@transactionHistoryTable').then(($table) => {
const typeIdx = getColIndexByThIdOrText($table, colIds.type, 'Type');
expect(typeIdx, 'Type column index').to.be.gte(0);

const formIdx = row.form ? getColIndexByThIdOrText($table, colIds.form, 'Form') : -1;
const reportIdx = row.report ? getColIndexByThIdOrText($table, colIds.report, 'Report') : -1;
const dateIdx = row.date ? getColIndexByThIdOrText($table, colIds.date, 'Date') : -1;
const amountIdx =
row.amount === undefined
? -1
: getColIndexByThIdOrText($table, colIds.amount, 'Amount');

const $rows = $table.find('tbody tr');
const rowIndex = $rows.toArray().findIndex((tr) => {
const tds = Array.from(tr.querySelectorAll('td'));
const cell = tds[typeIdx];
return !!cell && typeRx.test(normalize(cell.textContent ?? ''));
});

expect(rowIndex, `row index for type ${typeRx}`).to.be.gte(0);
expect(rowIndex, `row index for type ${typeRx}`).to.be.gte(0);

const $row = $rows.eq(rowIndex);
const $tds = $row.find('td');
const $row = $rows.eq(rowIndex);
const $tds = $row.find('td');

const assertCell = (idx: number, rx: RegExp, label: string) => {
expect(idx, `${label} column index`).to.be.gte(0);
const text = normalize($tds.eq(idx).text());
expect(text, `${label} cell text`).to.match(rx);
};
const assertCell = (idx: number, rx: RegExp, label: string) => {
expect(idx, `${label} column index`).to.be.gte(0);
const text = normalize($tds.eq(idx).text());
expect(text, `${label} cell text`).to.match(rx);
};

assertCell(typeIdx, typeRx, 'Type');
if (formRx) assertCell(formIdx, formRx, 'Form');
if (reportRx) assertCell(reportIdx, reportRx, 'Report');
if (dateRx) assertCell(dateIdx, dateRx, 'Date');
if (amountRx) assertCell(amountIdx, amountRx, 'Amount');
})
assertCell(typeIdx, typeRx, 'Type');
if (formRx) assertCell(formIdx, formRx, 'Form');
if (reportRx) assertCell(reportIdx, reportRx, 'Report');
if (dateRx) assertCell(dateIdx, dateRx, 'Date');
if (amountRx) assertCell(amountIdx, amountRx, 'Amount');
}),
)
.then(() => cy.wrap<void>(undefined, { log: false }));
}

Expand Down Expand Up @@ -773,7 +782,7 @@ export class ContactsDeleteHelpers {
if (normalized === 'Close') {
const $close = $dialog.find('[aria-label="Cancel"]').first();
if ($close.length) {
return cy.wrap($close).click({ force: true });
return cy.wrap($close).click();
}
throw new Error('Confirm delete dialog close icon not found.');
}
Expand All @@ -783,12 +792,12 @@ export class ContactsDeleteHelpers {
.filter((_, el) => (el.textContent || '').trim() === normalized)
.first();
if ($button.length) {
return cy.wrap($button).click({ force: true });
return cy.wrap($button).click();
}
if (normalized === 'Cancel') {
const $close = $dialog.find('[aria-label="Cancel"]').first();
if ($close.length) {
return cy.wrap($close).click({ force: true });
return cy.wrap($close).click();
}
}
throw new Error(`Confirm delete dialog "${normalized}" button not found.`);
Expand Down Expand Up @@ -830,7 +839,7 @@ export class ContactsDeleteHelpers {
}

static openActionsMenu(contactName: string) {
PageUtils.blurActiveField();
cy.blurActiveField();
PageUtils.getKabob(contactName);
cy.get('.p-popover').filter(':visible').should('exist');
cy.get('.p-popover').filter(':visible').contains('button', /Edit/i).should('be.visible');
Expand Down Expand Up @@ -897,7 +906,7 @@ export class ContactsDeleteHelpers {
if (label === 'Close') {
const $close = $dialog.find('[aria-label="Cancel"]').first();
if ($close.length) {
return cy.wrap($close).click({ force: true });
return cy.wrap($close).click();
}
throw new Error('Confirm delete dialog close icon not found.');
}
Expand All @@ -907,20 +916,20 @@ export class ContactsDeleteHelpers {
.filter((_, el) => (el.textContent || '').trim() === label)
.first();
if ($button.length) {
return cy.wrap($button).click({ force: true });
return cy.wrap($button).click();
}
if (label === 'Cancel') {
const $close = $dialog.find('[aria-label="Cancel"]').first();
if ($close.length) {
return cy.wrap($close).click({ force: true });
return cy.wrap($close).click();
}
}
throw new Error(`Confirm delete dialog is visible but "${label}" action was not found.`);
});
}

static openRestoreDeletedContactsModal() {
cy.contains('button,a', 'Restore deleted contacts').should('be.visible').click({ force: true });
cy.contains('button,a', 'Restore deleted contacts').should('be.visible').click();
const dialog = ContactsDeleteHelpers.getRestoreDeletedContactsDialog();
dialog.contains('button', /Restore selected/i).should('be.visible');
return dialog;
Expand All @@ -943,7 +952,7 @@ export class ContactsDeleteHelpers {
.first();
if ($root.length) return cy.wrap($root).scrollIntoView().click();
const $trigger = $wrap.find('.p-select-dropdown, [aria-label="dropdown trigger"]').first();
if ($trigger.length) return cy.wrap($trigger).scrollIntoView().click({ force: true });
if ($trigger.length) return cy.wrap($trigger).scrollIntoView().click();
throw new Error('Results-per-page select not found in restore dialog.');
});
}
Expand Down Expand Up @@ -988,7 +997,7 @@ export class ContactsDeleteHelpers {
if ($row.length) {
return cy.wrap($row)
.within(() => {
cy.get('input[type="checkbox"], .p-checkbox-box').first().click({ force: true });
cy.get('input[type="checkbox"], .p-checkbox-box').first().click();
})
.then(() => $row);
}
Expand All @@ -1001,7 +1010,7 @@ export class ContactsDeleteHelpers {
throw new Error(`Could not find deleted contact "${contactName}" before last page.`);
}

cy.wrap($next).click({ force: true });
cy.wrap($next).click();
return waitForPageLoad().then(() => tryPage(page + 1));
});
};
Expand Down
10 changes: 3 additions & 7 deletions front-end/cypress/e2e-extended/contacts/contacts.list.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { Initialize } from '../../e2e-smoke/pages/loginPage';
import { ContactListPage } from '../../e2e-smoke/pages/contactListPage';
import { ContactsHelpers } from './contacts.helpers';
import { SharedHelpers } from '../utils/shared.helpers';
import { PageUtils } from '../../e2e-smoke/pages/pageUtils';
import { defaultFormData as contactFormData } from '../../e2e-smoke/models/ContactFormModel';
import { makeContact } from '../../e2e-smoke/requests/methods';
import { Individual_A_A, MockContact } from '../../e2e-smoke/requests/library/contacts';
Expand Down Expand Up @@ -92,12 +91,10 @@ describe('Contacts List (/contacts)', () => {

it('checks pagination controls empty state', () => {
cy.contains(/results\s*per\s*page:/i).should('exist');
SharedHelpers.openResultsPerPage();
SharedHelpers.openResultsPerPage().blurActiveField();
for (const size of SharedHelpers.RESULTS_PER_PAGE_SIZES) {
cy.contains('[role="option"], .p-select-option', String(size)).should('exist');
}

PageUtils.blurActiveField();
cy.contains(/showing\s+\d+\s+to\s+\d+\s+of\s+\d+\s+contacts?/i).should('exist');
SharedHelpers.paginator().should('exist');
ContactsHelpers.assertDisabled('button[aria-label="First Page"], .p-paginator-first');
Expand Down Expand Up @@ -129,11 +126,10 @@ describe('Contacts List (/contacts)', () => {
'i',
);

SharedHelpers.openResultsPerPage();
SharedHelpers.openResultsPerPage().blurActiveField();
for (const size of SharedHelpers.RESULTS_PER_PAGE_SIZES) {
cy.contains('[role="option"], .p-select-option', String(size)).should('exist');
}
PageUtils.blurActiveField();

const selectPageSize = (size: number) => {
SharedHelpers.chooseResultsPerPage(size);
Expand All @@ -155,7 +151,7 @@ describe('Contacts List (/contacts)', () => {
cy.get('button[aria-label="Next Page"], .p-paginator-next')
.first()
.should('not.be.disabled')
.click({ force: true });
.click();

cy.contains(pageTextRx(21, 21), { timeout: 15000 }).should('be.visible');
cy.get('tbody tr', { timeout: 15000 }).should('have.length', 1);
Expand Down
Loading