diff --git a/src/conditions/page/condition/array-contains.ts b/src/conditions/context/condition/array-contains.ts similarity index 77% rename from src/conditions/page/condition/array-contains.ts rename to src/conditions/context/condition/array-contains.ts index fe6859f..1f6d52b 100644 --- a/src/conditions/page/condition/array-contains.ts +++ b/src/conditions/context/condition/array-contains.ts @@ -1,8 +1,8 @@ -import { PageCondition } from "@conditions/page/page-condition"; +import { ExpectedCondition } from "@conditions/expected-condition"; import type { ExpectedConditionKwargs } from "@conditions/types"; -export class ArrayContains extends PageCondition { +export class ArrayContains extends ExpectedCondition { constructor(actual: Array, expected: Array, kwargs: ExpectedConditionKwargs) { super(kwargs); this.actual = actual; diff --git a/src/conditions/page/condition/array-equals.ts b/src/conditions/context/condition/array-equals.ts similarity index 78% rename from src/conditions/page/condition/array-equals.ts rename to src/conditions/context/condition/array-equals.ts index 1678805..2ce82f6 100644 --- a/src/conditions/page/condition/array-equals.ts +++ b/src/conditions/context/condition/array-equals.ts @@ -1,8 +1,8 @@ -import { PageCondition } from "@conditions/page/page-condition"; +import { ExpectedCondition } from "@conditions/expected-condition"; import type { ExpectedConditionKwargs } from "@conditions/types"; -export class ArrayEquals extends PageCondition { +export class ArrayEquals extends ExpectedCondition { constructor(actual: Array, expected: Array, kwargs: ExpectedConditionKwargs) { super(kwargs); this.actual = actual; diff --git a/src/conditions/page/condition/equals.ts b/src/conditions/context/condition/equals.ts similarity index 75% rename from src/conditions/page/condition/equals.ts rename to src/conditions/context/condition/equals.ts index f644326..7571bba 100644 --- a/src/conditions/page/condition/equals.ts +++ b/src/conditions/context/condition/equals.ts @@ -1,8 +1,8 @@ -import { PageCondition } from "@conditions/page/page-condition"; +import { ExpectedCondition } from "@conditions/expected-condition"; import type { ExpectedConditionKwargs } from "@conditions/types"; -export class Equals extends PageCondition { +export class Equals extends ExpectedCondition { constructor(actual: T, expected: T, kwargs: ExpectedConditionKwargs) { super(kwargs); this.actual = actual; diff --git a/src/conditions/page/condition/file-exists.ts b/src/conditions/context/condition/file-exists.ts similarity index 79% rename from src/conditions/page/condition/file-exists.ts rename to src/conditions/context/condition/file-exists.ts index 9d6836e..74cb902 100644 --- a/src/conditions/page/condition/file-exists.ts +++ b/src/conditions/context/condition/file-exists.ts @@ -1,10 +1,10 @@ import * as fs from "fs-extra"; -import { PageCondition } from "@conditions/page/page-condition"; +import { ExpectedCondition } from "@conditions/expected-condition"; import type { ExpectedConditionKwargs } from "@conditions/types"; -export class FileExists extends PageCondition { +export class FileExists extends ExpectedCondition { constructor(path: string, kwargs: ExpectedConditionKwargs) { super(kwargs); this.expected = true; diff --git a/src/conditions/expected-conditions.ts b/src/conditions/expected-conditions.ts index 00fb9e0..904869f 100644 --- a/src/conditions/expected-conditions.ts +++ b/src/conditions/expected-conditions.ts @@ -1,9 +1,13 @@ import { expect } from "@playwright/test"; import { changecase } from "@common/utils/string"; +import { ArrayContains } from "./context/condition/array-contains"; +import { ArrayEquals } from "./context/condition/array-equals"; +import { Equals } from "./context/condition/equals"; +import { FileExists } from "./context/condition/file-exists"; import type { ExpectedCondition } from "./expected-condition"; -import type { ExpectedConditionOptions, ExpectedConditionsResult } from "./types"; +import type { ExpectedConditionKwargs, ExpectedConditionOptions, ExpectedConditionsResult } from "./types"; export class ExpectedConditions { protected name: string; @@ -68,6 +72,22 @@ export class ExpectedConditions { return this; } + arrayContains(actual: Array, expected: Array, kwargs?: ExpectedConditionKwargs) { + return this.addCondition(new ArrayContains(actual, expected, kwargs)); + } + + arrayEquals(actual: Array, expected: Array, kwargs?: ExpectedConditionKwargs) { + return this.addCondition(new ArrayEquals(actual, expected, kwargs)); + } + + equals(actual: T, expected: T, kwargs?: ExpectedConditionKwargs) { + return this.addCondition(new Equals(actual, expected, kwargs)); + } + + fileExists(path: string, kwargs?: ExpectedConditionKwargs) { + return this.addCondition(new FileExists(path, kwargs)); + } + async poll() { try { await expect.poll(async() => { diff --git a/src/conditions/page/page-conditions.ts b/src/conditions/page/page-conditions.ts index 8e289a5..338714e 100644 --- a/src/conditions/page/page-conditions.ts +++ b/src/conditions/page/page-conditions.ts @@ -1,11 +1,7 @@ import { ExpectedConditions } from "../expected-conditions"; -import { ArrayContains } from "./condition/array-contains"; -import { ArrayEquals } from "./condition/array-equals"; import { DialogTextContains } from "./condition/dialog-text-contains"; import { DialogTextEquals } from "./condition/dialog-text-equals"; import { DomContentLoaded } from "./condition/dom-content-loaded"; -import { Equals } from "./condition/equals"; -import { FileExists } from "./condition/file-exists"; import { SnapshotMatch } from "./condition/snapshot-match"; import { TitleContains } from "./condition/title-contains"; import { TitleEquals } from "./condition/title-equals"; @@ -28,14 +24,6 @@ export class PageConditions extends ExpectedConditions { this.page = page; } - arrayContains(actual: Array, expected: Array, kwargs?: ExpectedConditionKwargs) { - return this.addCondition(new ArrayContains(actual, expected, kwargs)); - } - - arrayEquals(actual: Array, expected: Array, kwargs?: ExpectedConditionKwargs) { - return this.addCondition(new ArrayEquals(actual, expected, kwargs)); - } - dialogTextContains(expected: string, kwargs?: ExpectedConditionKwargs) { return this.addCondition(new DialogTextContains(expected, kwargs)); } @@ -48,14 +36,6 @@ export class PageConditions extends ExpectedConditions { return this.addCondition(new DomContentLoaded(kwargs)); } - equals(actual: T, expected: T, kwargs?: ExpectedConditionKwargs) { - return this.addCondition(new Equals(actual, expected, kwargs)); - } - - fileExists(path: string, kwargs?: ExpectedConditionKwargs) { - return this.addCondition(new FileExists(path, kwargs)); - } - snapshotMatch(filename: string, kwargs?: ExpectedConditionKwargs & { options?: PageSnapshotOptions }) { return this.addCondition(new SnapshotMatch(filename, kwargs)); } diff --git a/src/conditions/types.ts b/src/conditions/types.ts index 9f5a5dd..ab46857 100644 --- a/src/conditions/types.ts +++ b/src/conditions/types.ts @@ -2,12 +2,12 @@ import type { ExpectedCondition } from "./expected-condition"; export type { ExpectedCondition } from "./expected-condition"; -export type { ExpectedConditions } from "./expected-conditions"; - export type { LocatorCondition } from "./locator/locator-condition"; export type { PageCondition } from "./page/page-condition"; +export { ExpectedConditions } from "./expected-conditions"; + export { LocatorConditions } from "./locator/locator-conditions"; export { PageConditions } from "./page/page-conditions";