1
1
import { CollisionHandler , CombinedAlignment , position } from '../src/index' ;
2
- // @ts -ignore
3
2
import { allData , Helper , SizeData } from './Helpers' ;
4
3
5
4
const windowSize : SizeData = {
@@ -25,79 +24,83 @@ const windowSize: SizeData = {
25
24
'bottom center' ,
26
25
'bottom right' ,
27
26
] ,
28
- helper = new Helper ( CollisionHandler . ignore , anchorSize , targetSize ) ;
27
+ helper = new Helper ( CollisionHandler . ignore , anchorSize , targetSize ) ,
28
+ collisionHandler : ( input : number ) => number = ( input ) => input + 50 ;
29
29
30
30
helper . setupEnvironment ( windowSize ) ;
31
31
32
32
describe ( 'HoverPosition (collisions ignored)' , ( ) => {
33
- // Add base style
34
-
35
33
describe . each ( positionArray ) ( 'Target Position: %s' , ( tP ) => {
36
- describe . each ( positionArray ) ( 'options.my: %s' , ( myAlignment ) => {
37
- test . each ( positionArray ) ( 'options.at: %s' , ( atAlignment ) => {
34
+ describe . each ( positionArray ) ( 'options.my: %s' , ( myPlacement ) => {
35
+ test . each ( positionArray ) ( 'options.at: %s' , ( atPlacement ) => {
38
36
helper . setupTest ( tP ) ;
39
37
40
38
const pData = position ( {
41
39
...{ debug : true } ,
42
40
...{
43
- my : myAlignment ,
44
- at : atAlignment ,
41
+ my : myPlacement ,
42
+ at : atPlacement ,
45
43
target : document . querySelector < HTMLDivElement > (
46
44
'.target' ,
47
45
) ! ,
48
46
anchor : document . querySelector < HTMLElement > ( '.anchor' ) ! ,
49
47
collision : CollisionHandler . ignore ,
50
48
} ,
51
49
} ) as allData ;
52
- /*
53
- console.log(
54
- `${tP}|${myAlignment}|${atAlignment}`,
55
- pData,
56
- );
57
- */
50
+
58
51
expect ( {
59
52
left : parseInt ( pData . left , 10 ) ,
60
53
top : parseInt ( pData . top , 10 ) ,
61
54
} ) . toStrictEqual ( {
62
- left : helper . getLeft ( tP , myAlignment , atAlignment ) ,
63
- top : helper . getTop ( tP , myAlignment , atAlignment ) ,
55
+ left : helper . getLeft ( tP , myPlacement , atPlacement ) ,
56
+ top : helper . getTop ( tP , myPlacement , atPlacement ) ,
64
57
} ) ;
65
58
} ) ;
66
59
} ) ;
67
60
} ) ;
68
61
} ) ;
69
62
70
63
test ( 'Window scroll adjusts output' , ( ) => {
64
+ // Set the window scroll position
71
65
window . scrollX = 50 ;
72
66
window . scrollY = 50 ;
73
-
74
- const tP = 'top left' ,
75
- myA = 'top center' ,
76
- atA = 'bottom center' ;
77
-
78
- helper . setupTest ( tP ) ;
67
+
68
+ const targetWindowPosition = 'top left' ,
69
+ myPlacement = 'top center' ,
70
+ atPlacement = 'bottom center' ;
71
+
72
+ helper . setupTest ( targetWindowPosition ) ;
79
73
80
74
const pData = position ( {
81
75
...{ debug : true } ,
82
76
...{
83
- my : myA ,
84
- at : atA ,
85
- target : document . querySelector < HTMLDivElement > (
86
- '.target' ,
87
- ) ! ,
77
+ my : myPlacement ,
78
+ at : atPlacement ,
79
+ target : document . querySelector < HTMLDivElement > ( '.target' ) ! ,
88
80
anchor : document . querySelector < HTMLElement > ( '.anchor' ) ! ,
89
81
collision : CollisionHandler . ignore ,
90
82
} ,
91
83
} ) as allData ;
92
-
84
+
93
85
expect ( {
94
86
left : parseInt ( pData . left , 10 ) ,
95
87
top : parseInt ( pData . top , 10 ) ,
96
88
} ) . toStrictEqual ( {
97
- left : helper . getLeft ( tP , myA , atA ) + 50 ,
98
- top : helper . getTop ( tP , myA , atA ) + 50 ,
89
+ left : helper . getLeft (
90
+ targetWindowPosition ,
91
+ myPlacement ,
92
+ atPlacement ,
93
+ collisionHandler ,
94
+ ) ,
95
+ top : helper . getTop (
96
+ targetWindowPosition ,
97
+ myPlacement ,
98
+ atPlacement ,
99
+ collisionHandler ,
100
+ ) ,
99
101
} ) ;
100
-
101
- window . scrollX = 50 ;
102
- window . scrollY = 50 ;
102
+
103
+ // Reset the window scroll position
104
+ window . scrollX = 0 ;
105
+ window . scrollY = 0 ;
103
106
} ) ;
0 commit comments