1
+ import {
2
+ ABOVE_CENTER_ANCHOR ,
3
+ ABOVE_INNER_LEFT_ANCHOR ,
4
+ ABOVE_INNER_RIGHT_ANCHOR ,
5
+ ABOVE_LEFT_ANCHOR ,
6
+ ABOVE_RIGHT_ANCHOR ,
7
+ BELOW_CENTER_ANCHOR ,
8
+ BELOW_INNER_LEFT_ANCHOR ,
9
+ BELOW_INNER_RIGHT_ANCHOR ,
10
+ BELOW_LEFT_ANCHOR ,
11
+ BELOW_RIGHT_ANCHOR ,
12
+ BOTTOM_CENTER_ANCHOR ,
13
+ BOTTOM_INNER_LEFT_ANCHOR ,
14
+ BOTTOM_INNER_RIGHT_ANCHOR ,
15
+ BOTTOM_LEFT_ANCHOR ,
16
+ BOTTOM_RIGHT_ANCHOR ,
17
+ CENTER_CENTER_ANCHOR ,
18
+ CENTER_INNER_LEFT_ANCHOR ,
19
+ CENTER_INNER_RIGHT_ANCHOR ,
20
+ CENTER_LEFT_ANCHOR ,
21
+ CENTER_RIGHT_ANCHOR ,
22
+ TOP_CENTER_ANCHOR ,
23
+ TOP_INNER_LEFT_ANCHOR ,
24
+ TOP_INNER_RIGHT_ANCHOR ,
25
+ TOP_LEFT_ANCHOR ,
26
+ TOP_RIGHT_ANCHOR ,
27
+ } from "../constants" ;
1
28
import { getTransformOrigin } from "../getTransformOrigin" ;
2
29
3
30
const TOP_LEFT = "0 0" ;
@@ -14,72 +41,59 @@ const BOTTOM_RIGHT = "100% 100%";
14
41
15
42
describe ( "getTransformOrigin" , ( ) => {
16
43
it ( 'should position the "right below", "right top", "inner-left below", and "inner-left top" anchors to the top left origin' , ( ) => {
17
- expect ( getTransformOrigin ( { x : "right" , y : "below" } ) ) . toBe ( TOP_LEFT ) ;
18
- expect ( getTransformOrigin ( { x : "right" , y : "top" } ) ) . toBe ( TOP_LEFT ) ;
19
- expect ( getTransformOrigin ( { x : "inner-left" , y : "below" } ) ) . toBe ( TOP_LEFT ) ;
20
- expect ( getTransformOrigin ( { x : "inner-left" , y : "top" } ) ) . toBe ( TOP_LEFT ) ;
44
+ expect ( getTransformOrigin ( BELOW_RIGHT_ANCHOR ) ) . toBe ( TOP_LEFT ) ;
45
+ expect ( getTransformOrigin ( TOP_RIGHT_ANCHOR ) ) . toBe ( TOP_LEFT ) ;
46
+ expect ( getTransformOrigin ( BELOW_INNER_LEFT_ANCHOR ) ) . toBe ( TOP_LEFT ) ;
47
+ expect ( getTransformOrigin ( TOP_INNER_LEFT_ANCHOR ) ) . toBe ( TOP_LEFT ) ;
21
48
} ) ;
22
49
23
50
it ( 'should position the "center below" and "center top" anchors to the top center origin ("50% 0")' , ( ) => {
24
- expect ( getTransformOrigin ( { x : "center" , y : "below" } ) ) . toBe ( TOP_CENTER ) ;
25
- expect ( getTransformOrigin ( { x : "center" , y : "top" } ) ) . toBe ( TOP_CENTER ) ;
51
+ expect ( getTransformOrigin ( BELOW_CENTER_ANCHOR ) ) . toBe ( TOP_CENTER ) ;
52
+ expect ( getTransformOrigin ( TOP_CENTER_ANCHOR ) ) . toBe ( TOP_CENTER ) ;
26
53
} ) ;
27
54
28
55
it ( 'should position the "inner-right below", "inner-right top", "left below", and "left top" anchors to the top right origin ("100% 0")' , ( ) => {
29
- expect ( getTransformOrigin ( { x : "inner-right" , y : "below" } ) ) . toBe (
30
- TOP_RIGHT
31
- ) ;
32
- expect ( getTransformOrigin ( { x : "inner-right" , y : "top" } ) ) . toBe ( TOP_RIGHT ) ;
33
- expect ( getTransformOrigin ( { x : "left" , y : "below" } ) ) . toBe ( TOP_RIGHT ) ;
34
- expect ( getTransformOrigin ( { x : "left" , y : "top" } ) ) . toBe ( TOP_RIGHT ) ;
56
+ expect ( getTransformOrigin ( BELOW_INNER_RIGHT_ANCHOR ) ) . toBe ( TOP_RIGHT ) ;
57
+ expect ( getTransformOrigin ( TOP_INNER_RIGHT_ANCHOR ) ) . toBe ( TOP_RIGHT ) ;
58
+ expect ( getTransformOrigin ( BELOW_LEFT_ANCHOR ) ) . toBe ( TOP_RIGHT ) ;
59
+ expect ( getTransformOrigin ( TOP_LEFT_ANCHOR ) ) . toBe ( TOP_RIGHT ) ;
35
60
} ) ;
36
61
37
62
it ( 'should position the "right center" and "inner-right center" anchors to the center left origin ("0 50%")' , ( ) => {
38
- expect ( getTransformOrigin ( { x : "right" , y : "center" } ) ) . toBe ( CENTER_LEFT ) ;
39
- expect ( getTransformOrigin ( { x : "inner-left" , y : "center" } ) ) . toBe (
40
- CENTER_LEFT
41
- ) ;
63
+ expect ( getTransformOrigin ( CENTER_RIGHT_ANCHOR ) ) . toBe ( CENTER_LEFT ) ;
64
+ expect ( getTransformOrigin ( CENTER_INNER_LEFT_ANCHOR ) ) . toBe ( CENTER_LEFT ) ;
42
65
} ) ;
43
66
44
67
it ( 'should position the "center center" anchor to the absolute center origin ("50% 50%")' , ( ) => {
45
- expect ( getTransformOrigin ( { x : "center" , y : "center" } ) ) . toBe (
46
- CENTER_CENTER
47
- ) ;
68
+ expect ( getTransformOrigin ( CENTER_CENTER_ANCHOR ) ) . toBe ( CENTER_CENTER ) ;
48
69
} ) ;
49
70
50
71
it ( 'should position the "inner-right center" and "left center" anchors to the center right origin ("100% 50%")' , ( ) => {
51
- expect ( getTransformOrigin ( { x : "inner-right" , y : "center" } ) ) . toBe (
52
- CENTER_RIGHT
53
- ) ;
54
- expect ( getTransformOrigin ( { x : "left" , y : "center" } ) ) . toBe ( CENTER_RIGHT ) ;
72
+ expect ( getTransformOrigin ( CENTER_INNER_RIGHT_ANCHOR ) ) . toBe ( CENTER_RIGHT ) ;
73
+ expect ( getTransformOrigin ( CENTER_LEFT_ANCHOR ) ) . toBe ( CENTER_RIGHT ) ;
55
74
} ) ;
56
75
57
76
it ( 'should position the "right above", "right bottom", "inner-left above", and "inner-left bottom" anchors to the bottom left origin ("0 100%")' , ( ) => {
58
- expect ( getTransformOrigin ( { x : "right" , y : "above" } ) ) . toBe ( BOTTOM_LEFT ) ;
59
- expect ( getTransformOrigin ( { x : "right" , y : "bottom" } ) ) . toBe ( BOTTOM_LEFT ) ;
60
- expect ( getTransformOrigin ( { x : "inner-left" , y : "above" } ) ) . toBe (
61
- BOTTOM_LEFT
62
- ) ;
63
- expect ( getTransformOrigin ( { x : "inner-left" , y : "bottom" } ) ) . toBe (
64
- BOTTOM_LEFT
65
- ) ;
77
+ expect ( getTransformOrigin ( ABOVE_RIGHT_ANCHOR ) ) . toBe ( BOTTOM_LEFT ) ;
78
+ expect ( getTransformOrigin ( BOTTOM_RIGHT_ANCHOR ) ) . toBe ( BOTTOM_LEFT ) ;
79
+ expect ( getTransformOrigin ( ABOVE_INNER_LEFT_ANCHOR ) ) . toBe ( BOTTOM_LEFT ) ;
80
+ expect ( getTransformOrigin ( BOTTOM_INNER_LEFT_ANCHOR ) ) . toBe ( BOTTOM_LEFT ) ;
66
81
} ) ;
67
82
68
83
it ( 'should position the "center above" and "center bottom" anchors to the bottom center origin ("50% 100%")' , ( ) => {
69
- expect ( getTransformOrigin ( { x : "center" , y : "above" } ) ) . toBe ( BOTTOM_CENTER ) ;
70
- expect ( getTransformOrigin ( { x : "center" , y : "bottom" } ) ) . toBe (
71
- BOTTOM_CENTER
72
- ) ;
84
+ expect ( getTransformOrigin ( ABOVE_CENTER_ANCHOR ) ) . toBe ( BOTTOM_CENTER ) ;
85
+ expect ( getTransformOrigin ( BOTTOM_CENTER_ANCHOR ) ) . toBe ( BOTTOM_CENTER ) ;
73
86
} ) ;
74
87
75
88
it ( 'should position the "inner-right above", "inner-right bottom", "left above", and "left bottom" anchors to the bottom right origin ("100% 100%")' , ( ) => {
76
- expect ( getTransformOrigin ( { x : "inner-right" , y : "above" } ) ) . toBe (
77
- BOTTOM_RIGHT
78
- ) ;
79
- expect ( getTransformOrigin ( { x : "inner-right" , y : "bottom" } ) ) . toBe (
80
- BOTTOM_RIGHT
81
- ) ;
82
- expect ( getTransformOrigin ( { x : "left" , y : "above" } ) ) . toBe ( BOTTOM_RIGHT ) ;
83
- expect ( getTransformOrigin ( { x : "left" , y : "bottom" } ) ) . toBe ( BOTTOM_RIGHT ) ;
89
+ expect ( getTransformOrigin ( ABOVE_INNER_RIGHT_ANCHOR ) ) . toBe ( BOTTOM_RIGHT ) ;
90
+ expect ( getTransformOrigin ( BOTTOM_INNER_RIGHT_ANCHOR ) ) . toBe ( BOTTOM_RIGHT ) ;
91
+ expect ( getTransformOrigin ( ABOVE_LEFT_ANCHOR ) ) . toBe ( BOTTOM_RIGHT ) ;
92
+ expect ( getTransformOrigin ( BOTTOM_LEFT_ANCHOR ) ) . toBe ( BOTTOM_RIGHT ) ;
93
+ } ) ;
94
+
95
+ it ( "should default to 0 0 if an invalid anchor is provided" , ( ) => {
96
+ // @ts -expect-error
97
+ expect ( getTransformOrigin ( { x : "invalid" , y : "invalid" } ) ) . toBe ( "0 0" ) ;
84
98
} ) ;
85
99
} ) ;
0 commit comments