diff --git a/src/app/components/contract/contract.component.html b/src/app/components/contract/contract.component.html index fcece6e..e754a98 100644 --- a/src/app/components/contract/contract.component.html +++ b/src/app/components/contract/contract.component.html @@ -1,5 +1,6 @@
diff --git a/src/app/components/contracts/contracts.component.html b/src/app/components/contracts/contracts.component.html index 0decfc0..cb31987 100644 --- a/src/app/components/contracts/contracts.component.html +++ b/src/app/components/contracts/contracts.component.html @@ -1,4 +1,5 @@
diff --git a/src/app/components/contracts/tests/contracts.component.spec.ts b/src/app/components/contracts/tests/contracts.component.spec.ts index 40dcce2..2a52f41 100644 --- a/src/app/components/contracts/tests/contracts.component.spec.ts +++ b/src/app/components/contracts/tests/contracts.component.spec.ts @@ -95,7 +95,7 @@ describe('ContractsComponent', () => { harnesses } = await initComponent(CONTRACTS) - expect(await harnesses.router.component.matTableNRows('contractList')).toBe(getVisibleContracts(CONTRACTS).length) + await harnesses.router.component.expectMatTableNRows('contractList', getVisibleContracts(CONTRACTS).length) for (const contract of getVisibleContracts(CONTRACTS)) { await harnesses.router.component.inMatTableRow('contractList', { number: contract.number @@ -112,7 +112,7 @@ describe('ContractsComponent', () => { harnesses } = await initComponent([]) - expect(await harnesses.router.component.matTableNRows('contractList')).toBe(0) + await harnesses.router.component.expectMatTableNRows('contractList', 0) await harnesses.router.component.expectElementVisible('noContractsMessage', true) }) @@ -139,7 +139,7 @@ describe('ContractsComponent', () => { number: contractToDelete.number }).clickElement('deleteContract') await harnesses.router.component.messageBoxClick(MessageActions.CONFIRM) - expect(await harnesses.router.component.matTableNRows('contractList')).toBe(expectedContracts.length) + await harnesses.router.component.expectMatTableNRows('contractList', expectedContracts.length) for (const expectedContract of expectedContracts) { await harnesses.router.component.inMatTableRow('contractList', { number: expectedContract.number @@ -162,7 +162,7 @@ describe('ContractsComponent', () => { number: contractToDelete.number }).clickElement('deleteContract') await harnesses.router.component.messageBoxClick(MessageActions.CANCEL) - expect(await harnesses.router.component.matTableNRows('contractList')).toBe(expectedContracts.length) + await harnesses.router.component.expectMatTableNRows('contractList', expectedContracts.length) for (const expectedContract of expectedContracts) { await harnesses.router.component.inMatTableRow('contractList', { number: expectedContract.number @@ -216,7 +216,7 @@ describe('ContractsComponent', () => { const contractToFind = CONTRACTS[5] await harnesses.router.component.enterValue('contractSearchInput', contractToFind.number) - expect(await harnesses.router.component.matTableNRows('contractList')).toBe(1) + await harnesses.router.component.expectMatTableNRows('contractList', 1) await harnesses.router.component.inMatTableRow('contractList', { number: contractToFind.number }).expectElementText('contractNumber', contractToFind.number) @@ -225,12 +225,12 @@ describe('ContractsComponent', () => { }).expectElementText('contractConditions', contractToFind.conditions) await harnesses.router.component.enterValue('contractSearchInput', '') - expect(await harnesses.router.component.matTableNRows('contractList')).toBe(getVisibleContracts(CONTRACTS).length) + await harnesses.router.component.expectMatTableNRows('contractList', getVisibleContracts(CONTRACTS).length) await harnesses.router.component.enterValue('contractSearchInput', 'some nono-existent contract number') - expect(await harnesses.router.component.matTableNRows('contractList')).toBe(0) + await harnesses.router.component.expectMatTableNRows('contractList', 0) await harnesses.router.component.enterValue('contractSearchInput', '') - expect(await harnesses.router.component.matTableNRows('contractList')).toBe(getVisibleContracts(CONTRACTS).length) + await harnesses.router.component.expectMatTableNRows('contractList', getVisibleContracts(CONTRACTS).length) }) }) diff --git a/src/app/tests/foundation/base.component.harness.ts b/src/app/tests/foundation/base.component.harness.ts index 0163faa..1b4077e 100644 --- a/src/app/tests/foundation/base.component.harness.ts +++ b/src/app/tests/foundation/base.component.harness.ts @@ -40,6 +40,7 @@ export class BaseHarness extends ComponentHarness { protected getRootLoader(): HarnessLoader { if (!this.rootLoader) { + console.error('root loader was not initialized') throw new Error('root loader was not initialized') } return this.rootLoader @@ -388,12 +389,16 @@ export class BaseHarness extends ComponentHarness { return children.length } - public async matTableNRows(id: string): Promise { - const matTable = await this.locatorFor(MatTableHarness.with({ - selector: this.getIdSelector(id) - }))() - const rows = await matTable.getRows() - return rows.length + public async expectMatTableNRows(id: string, nRows: number): Promise { + await this.waitFor({ + lookup: async () => { + const matTable = await this.locatorFor(MatTableHarness.with({ + selector: this.getIdSelector(id) + }))() + return (await matTable.getRows()).length === nRows + }, + errorMessage: `No mat table ${id} with ${nRows} rows found` + }) } // +