This repository was archived by the owner on Aug 20, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 4 files changed +31
-8
lines changed
Expand file tree Collapse file tree 4 files changed +31
-8
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,18 @@ describe("toHaveSelector", () => {
88 await page . setContent ( `<div id="foobar">Bar</div>` )
99 await expect ( page ) . toHaveSelector ( "#foobar" )
1010 } )
11+ it ( "positive in frame" , async ( ) => {
12+ await page . setContent ( `<iframe src="https://example.com"></iframe>` )
13+ const selector = "a:text-is('More information...')"
14+
15+ const handle = page . $ ( "iframe" )
16+ await expect ( handle ) . toHaveSelector ( selector )
17+ await expect ( await handle ) . toHaveSelector ( selector )
18+
19+ const frame = ( await handle ) ?. contentFrame ( )
20+ await expect ( frame ) . toHaveSelector ( selector )
21+ await expect ( await frame ) . toHaveSelector ( selector )
22+ } )
1123 it ( "negative" , async ( ) => {
1224 await assertSnapshot ( ( ) =>
1325 expect ( page ) . toHaveSelector ( "#foobar" , { timeout : 1000 } )
Original file line number Diff line number Diff line change 11import { SyncExpectationResult } from "expect/build/types"
2- import type { Page } from "playwright-core"
32import { PageWaitForSelectorOptions } from "../../../global"
3+ import { ExpectInputType , getFrame } from "../utils"
44
55const toHaveSelector : jest . CustomMatcher = async function (
6- page : Page ,
6+ arg : ExpectInputType ,
77 selector : string ,
88 options : PageWaitForSelectorOptions = { }
99) : Promise < SyncExpectationResult > {
10- const pass = await page
10+ const frame = await getFrame ( arg )
11+ const pass = await frame !
1112 . waitForSelector ( selector , {
1213 state : this . isNot ? "hidden" : "visible" ,
1314 ...options ,
Original file line number Diff line number Diff line change @@ -11,6 +11,16 @@ describe("toHaveSelectorCount", () => {
1111 )
1212 await expect ( page ) . toHaveSelectorCount ( ".foobar" , 2 )
1313 } )
14+ it ( "positive in frame" , async ( ) => {
15+ await page . setContent ( `<iframe src="https://example.com"></iframe>` )
16+ const handle = page . $ ( "iframe" )
17+ await expect ( handle ) . toHaveSelectorCount ( "p" , 2 )
18+ await expect ( await handle ) . toHaveSelectorCount ( "p" , 2 )
19+
20+ const frame = ( await handle ) ?. contentFrame ( )
21+ await expect ( frame ) . toHaveSelectorCount ( "p" , 2 )
22+ await expect ( await frame ) . toHaveSelectorCount ( "p" , 2 )
23+ } )
1424 it ( "negative" , async ( ) => {
1525 await page . setContent ( `<div class="foobar">Bar</div>` )
1626 await assertSnapshot ( ( ) => expect ( page ) . toHaveSelectorCount ( ".foobar" , 2 ) )
Original file line number Diff line number Diff line change 11import { SyncExpectationResult } from "expect/build/types"
2- import { getMessage , quote } from "../utils"
3- import type { Page } from "playwright-core"
42import { PageWaitForSelectorOptions } from "../../../global"
3+ import { ExpectInputType , getFrame , getMessage , quote } from "../utils"
54
65const toHaveSelectorCount : jest . CustomMatcher = async function (
7- page : Page ,
6+ arg : ExpectInputType ,
87 selector : string ,
98 expectedValue : number ,
109 options : PageWaitForSelectorOptions = { }
1110) : Promise < SyncExpectationResult > {
1211 try {
13- await page . waitForSelector ( selector , { state : "attached" , ...options } )
12+ const frame = ( await getFrame ( arg ) ) !
13+ await frame . waitForSelector ( selector , { state : "attached" , ...options } )
1414 /* istanbul ignore next */
15- const actualCount = await page . $$eval ( selector , ( el ) => el . length )
15+ const actualCount = await frame . $$eval ( selector , ( el ) => el . length )
1616
1717 return {
1818 pass : actualCount === expectedValue ,
You can’t perform that action at this time.
0 commit comments