@@ -48,13 +48,14 @@ describe( 'CssChain own methods', () =>
4848 it ( 'attr(name,cb,css)' , async ( ) =>
4949 {
5050 const el = await fixture ( html `< div > < a id ="a1 "> < b > B1</ b > </ a > < a id ="a2 "> < b > B2</ b > </ a > </ div > ` ) ;
51- const $X = $$ ( 'a' , el )
52- const css = 'b'
53- expect ( $X . attr ( 'title' , ( el , i ) => el . innerHTML + '-' + i , css ) . length ) . to . equal ( 2 ) ;
54- expect ( $X . $ ( css ) . getAttribute ( 'title' ) ) . to . equal ( '<b>B1</b>-0' ) ;
55- expect ( $X . $ ( css ) [ 0 ] . getAttribute ( 'title' ) ) . to . equal ( '<b>B1</b>-0' ) ;
56- expect ( $X . $ ( css ) [ 1 ] . getAttribute ( 'title' ) ) . to . equal ( '<b>B2</b>-1' ) ;
57- expect ( $X . $ ( css ) . attr ( 'title' ) ) . to . equal ( '<b>B1</b>-0' ) ;
51+ const $X = $$ ( 'a' , el ) ;
52+ const css = 'b' ;
53+ const cb = ( n , i , arr , $ ) => arr [ i ] . innerText + '-' + $ [ i ] . id + '-' + i + '-' + n . innerText ;
54+ expect ( $X . attr ( 'title' , cb , css ) . length ) . to . equal ( 2 ) ;
55+ expect ( $X . $ ( css ) . getAttribute ( 'title' ) ) . to . equal ( 'B1-a1-0-B1' ) ;
56+ expect ( $X . $ ( css ) [ 0 ] . getAttribute ( 'title' ) ) . to . equal ( 'B1-a1-0-B1' ) ;
57+ expect ( $X . $ ( css ) [ 1 ] . getAttribute ( 'title' ) ) . to . equal ( 'B2-a2-1-B2' ) ;
58+ expect ( $X . $ ( css ) . attr ( 'title' ) ) . to . equal ( 'B1-a1-0-B1' ) ;
5859 } ) ;
5960
6061 it ( 'prop(name), prop(name,val)' , async ( ) =>
@@ -72,6 +73,18 @@ describe( 'CssChain own methods', () =>
7273
7374 expect ( $X . attr ( 'id' ) ) . to . equal ( 'AZ' ) ;
7475 } ) ;
76+ it ( 'prop(name,valCallback)' , async ( ) =>
77+ {
78+ const el = await fixture ( html `< div > < a id ="a1 "> </ a > < a id ="a2 "> </ a > </ div > ` ) ;
79+ const $X = $$ ( 'a' , el ) ;
80+ const cb = ( n , i , arr , $ ) => `${ n . id } -${ i } -${ arr [ i ] . id } -${ $ [ i ] . tagName } ` ;
81+ expect ( $X . prop ( 'id' , cb ) . length ) . to . equal ( 2 ) ;
82+ expect ( $X . prop ( 'id' ) ) . to . equal ( 'a1-0-a1-A' ) ;
83+ expect ( $X [ 0 ] . id ) . to . equal ( 'a1-0-a1-A' ) ;
84+ expect ( $X [ 1 ] . id ) . to . equal ( 'a2-1-a2-A' ) ;
85+
86+ expect ( $X . attr ( 'id' ) ) . to . equal ( 'a1-0-a1-A' ) ;
87+ } ) ;
7588 it ( 'prop(name,val,css)' , async ( ) =>
7689 {
7790 const el = await fixture ( html `< div > < a id ="a1 "> </ a > < a id ="a2 "> </ a > </ div > ` ) ;
@@ -84,6 +97,19 @@ describe( 'CssChain own methods', () =>
8497
8598 expect ( $X . $ ( 'a' ) . attr ( 'id' ) ) . to . equal ( 'AZ' ) ;
8699 } ) ;
100+ it ( 'prop(name,valCb,css)' , async ( ) =>
101+ {
102+ const el = await fixture ( html `< div > < a id ="a1 "> </ a > < a id ="a2 "> </ a > </ div > ` ) ;
103+ const $X = $$ ( el )
104+ const cb = ( n , i , arr , $ ) => `${ n . id } -${ i } -${ arr [ i ] . id } -${ $ . tagName } ` ;
105+
106+ expect ( $X . prop ( 'id' , cb , 'a' ) . length ) . to . equal ( 1 ) ;
107+ expect ( $X . $ ( 'a' ) . prop ( 'id' ) ) . to . equal ( 'a1-0-a1-DIV' ) ;
108+ expect ( $X . $ ( 'a' ) [ 0 ] . id ) . to . equal ( 'a1-0-a1-DIV' ) ;
109+ expect ( $X . $ ( 'a' ) [ 1 ] . id ) . to . equal ( 'a2-1-a2-DIV' ) ;
110+
111+ expect ( $X . $ ( 'a' ) . attr ( 'id' ) ) . to . equal ( 'a1-0-a1-DIV' ) ;
112+ } ) ;
87113 it ( 'attr(name,val,css)' , async ( ) =>
88114 {
89115 const el = await fixture ( html `< div > < a id ="a1 "> </ a > < a id ="a2 "> </ a > </ div > ` ) ;
0 commit comments