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`
+ })
}
// +