1
1
import { describe , expect , test } from '@jest/globals' ;
2
2
import { getFullPageConfig , parseRegionsForAPI } from './utils' ;
3
- import { FullPageConfigIn , RegionIn } from './graphql/__generated__/graphql' ;
3
+ import { RegionIn } from './graphql/__generated__/graphql' ;
4
+ import { FullPageScreenshotOptions } from './types' ;
4
5
5
- const configDelay : FullPageConfigIn = {
6
+ type MockElement = { elementId : string } ;
7
+
8
+ const configDelay : FullPageScreenshotOptions < MockElement > = {
6
9
delayAfterScrollMs : 1500 ,
7
10
} ;
8
11
9
- const configDelayBig : FullPageConfigIn = {
12
+ const configDelayBig : FullPageScreenshotOptions < MockElement > = {
10
13
delayAfterScrollMs : 5000 ,
11
14
} ;
12
15
@@ -23,66 +26,91 @@ const resolveForTest = async (itemPromise: string | Promise<RegionIn>) => {
23
26
describe ( 'utils' , ( ) => {
24
27
describe ( 'getFullPageConfig' , ( ) => {
25
28
describe ( 'returns undefined' , ( ) => {
26
- test ( 'when main is true and local is false' , ( ) => {
27
- expect ( getFullPageConfig ( true , false ) ) . toBeUndefined ( ) ;
29
+ test ( 'when main is true and local is false' , async ( ) => {
30
+ expect ( await getFullPageConfig ( true , false ) ) . toBeUndefined ( ) ;
28
31
} ) ;
29
- test ( 'when main is false and local is false' , ( ) => {
30
- expect ( getFullPageConfig ( false , false ) ) . toBeUndefined ( ) ;
32
+ test ( 'when main is false and local is false' , async ( ) => {
33
+ expect ( await getFullPageConfig ( false , false ) ) . toBeUndefined ( ) ;
31
34
} ) ;
32
- test ( 'when main is false and local is false' , ( ) => {
33
- expect ( getFullPageConfig ( false , false ) ) . toBeUndefined ( ) ;
35
+ test ( 'when main is false and local is false' , async ( ) => {
36
+ expect ( await getFullPageConfig ( false , false ) ) . toBeUndefined ( ) ;
34
37
} ) ;
35
- test ( 'when main is object and local is false' , ( ) => {
36
- expect ( getFullPageConfig ( configDelay , false ) ) . toBeUndefined ( ) ;
38
+ test ( 'when main is object and local is false' , async ( ) => {
39
+ expect ( await getFullPageConfig ( configDelay , false ) ) . toBeUndefined ( ) ;
37
40
} ) ;
38
- test ( 'when main is undefined and local is false' , ( ) => {
39
- expect ( getFullPageConfig ( undefined , false ) ) . toBeUndefined ( ) ;
41
+ test ( 'when main is undefined and local is false' , async ( ) => {
42
+ expect ( await getFullPageConfig ( undefined , false ) ) . toBeUndefined ( ) ;
40
43
} ) ;
41
- test ( 'when main is undefined and local is undefined' , ( ) => {
42
- expect ( getFullPageConfig ( undefined , undefined ) ) . toBeUndefined ( ) ;
44
+ test ( 'when main is undefined and local is undefined' , async ( ) => {
45
+ expect ( await getFullPageConfig ( undefined , undefined ) ) . toBeUndefined ( ) ;
43
46
} ) ;
44
- test ( 'when main is false and local is undefined' , ( ) => {
45
- expect ( getFullPageConfig ( false , undefined ) ) . toBeUndefined ( ) ;
47
+ test ( 'when main is false and local is undefined' , async ( ) => {
48
+ expect ( await getFullPageConfig ( false , undefined ) ) . toBeUndefined ( ) ;
46
49
} ) ;
47
50
} ) ;
48
51
describe ( 'returns empty config' , ( ) => {
49
- test ( 'when main is true and local is true' , ( ) => {
50
- expect ( getFullPageConfig ( true , undefined ) ) . toEqual ( { } ) ;
52
+ test ( 'when main is true and local is true' , async ( ) => {
53
+ expect ( await getFullPageConfig ( true , undefined ) ) . toEqual ( { } ) ;
51
54
} ) ;
52
- test ( 'when main is false and local is true' , ( ) => {
53
- expect ( getFullPageConfig ( true , undefined ) ) . toEqual ( { } ) ;
55
+ test ( 'when main is false and local is true' , async ( ) => {
56
+ expect ( await getFullPageConfig ( true , undefined ) ) . toEqual ( { } ) ;
54
57
} ) ;
55
- test ( 'when main is undefined and local is true' , ( ) => {
56
- expect ( getFullPageConfig ( true , undefined ) ) . toEqual ( { } ) ;
58
+ test ( 'when main is undefined and local is true' , async ( ) => {
59
+ expect ( await getFullPageConfig ( true , undefined ) ) . toEqual ( { } ) ;
57
60
} ) ;
58
- test ( 'when main is true and local is undefined' , ( ) => {
59
- expect ( getFullPageConfig ( true , undefined ) ) . toEqual ( { } ) ;
61
+ test ( 'when main is true and local is undefined' , async ( ) => {
62
+ expect ( await getFullPageConfig ( true , undefined ) ) . toEqual ( { } ) ;
60
63
} ) ;
61
64
} ) ;
62
65
describe ( 'returns config' , ( ) => {
63
- test ( 'when main is config and local is true' , ( ) => {
64
- expect ( getFullPageConfig ( configDelay , true ) ) . toEqual ( configDelay ) ;
66
+ test ( 'when main is config and local is true' , async ( ) => {
67
+ expect ( await getFullPageConfig ( configDelay , true ) ) . toEqual ( configDelay ) ;
65
68
} ) ;
66
- test ( 'when main is true and local is config' , ( ) => {
67
- expect ( getFullPageConfig ( true , configDelay ) ) . toEqual ( configDelay ) ;
69
+ test ( 'when main is true and local is config' , async ( ) => {
70
+ expect ( await getFullPageConfig ( true , configDelay ) ) . toEqual ( configDelay ) ;
68
71
} ) ;
69
- test ( 'when main is false and local is config' , ( ) => {
70
- expect ( getFullPageConfig ( true , configDelay ) ) . toEqual ( configDelay ) ;
72
+ test ( 'when main is false and local is config' , async ( ) => {
73
+ expect ( await getFullPageConfig ( true , configDelay ) ) . toEqual ( configDelay ) ;
71
74
} ) ;
72
- test ( 'when main is config and local is config' , ( ) => {
73
- expect ( getFullPageConfig ( configDelay , configDelay ) ) . toEqual (
75
+ test ( 'when main is config and local is config' , async ( ) => {
76
+ expect ( await getFullPageConfig ( configDelay , configDelay ) ) . toEqual (
74
77
configDelay ,
75
78
) ;
76
79
} ) ;
77
- test ( 'and local overwrites main config' , ( ) => {
78
- expect ( getFullPageConfig ( configDelay , configDelayBig ) ) . toEqual (
80
+ test ( 'and local overwrites main config' , async ( ) => {
81
+ expect ( await getFullPageConfig ( configDelay , configDelayBig ) ) . toEqual (
79
82
configDelayBig ,
80
83
) ;
81
84
} ) ;
82
- test ( 'with merged local and main config' , ( ) => {
85
+ test ( 'with merged local and main config' , async ( ) => {
83
86
const main = { delayAfterScrollMs : 500 } ;
84
87
const local = { disableCSSAnimation : false } ;
85
- expect ( getFullPageConfig ( main , local ) ) . toEqual ( { ...main , ...local } ) ;
88
+ expect ( await getFullPageConfig ( main , local ) ) . toEqual ( {
89
+ ...main ,
90
+ ...local ,
91
+ } ) ;
92
+ } ) ;
93
+ test ( 'with scrollElement when scrollElement is a promise' , async ( ) => {
94
+ const elementId = 'elementId' ;
95
+ const main = { } ;
96
+ const local = {
97
+ scrollElement : Promise . resolve ( { elementId : elementId } ) ,
98
+ } ;
99
+ expect (
100
+ await getFullPageConfig ( main , local , ( el ) => el . elementId ) ,
101
+ ) . toEqual ( {
102
+ scrollElement : elementId ,
103
+ } ) ;
104
+ } ) ;
105
+ test ( 'with scrollElement when scrollElement is an object' , async ( ) => {
106
+ const elementId = 'elementId' ;
107
+ const main = { scrollElement : { elementId : elementId } } ;
108
+ const local = { } ;
109
+ expect (
110
+ await getFullPageConfig ( main , local , ( el ) => el . elementId ) ,
111
+ ) . toEqual ( {
112
+ scrollElement : elementId ,
113
+ } ) ;
86
114
} ) ;
87
115
} ) ;
88
116
} ) ;
0 commit comments