1
1
jest . mock ( "./components/modal.css" , ( ) => "" ) ;
2
+ jest . mock ( "gotrue-js" , ( ) => {
3
+ const mock = jest . fn ( ) . mockImplementation ( ( { APIUrl, setCookie } ) => {
4
+ return {
5
+ settings : jest . fn ( ) . mockResolvedValue ( {
6
+ external : {
7
+ bitbucket : false ,
8
+ github : false ,
9
+ gitlab : false ,
10
+ google : false ,
11
+ facebook : false ,
12
+ email : true ,
13
+ saml : false
14
+ } ,
15
+ external_labels : { } ,
16
+ disable_signup : false ,
17
+ autoconfirm : false
18
+ } ) ,
19
+ currentUser : jest . fn ( ) ,
20
+ APIUrl,
21
+ setCookie
22
+ } ;
23
+ } ) ;
24
+ return mock ;
25
+ } ) ;
2
26
3
27
describe ( "netlifyIdentity" , ( ) => {
4
28
beforeEach ( ( ) => {
5
29
jest . resetModules ( ) ;
6
- jest . mock ( "./state/store" , ( ) => {
7
- const { observable } = require ( "mobx" ) ;
8
- const store = observable ( {
9
- user : null ,
10
- recovered_user : null ,
11
- message : null ,
12
- settings : null ,
13
- gotrue : null ,
14
- error : null ,
15
- siteURL : null ,
16
- remember : true ,
17
- saving : false ,
18
- invite_token : null ,
19
- email_change_token : null ,
20
- namePlaceholder : null ,
21
- modal : {
22
- page : "login" ,
23
- isOpen : false ,
24
- logo : true
25
- } ,
26
- locale : "en"
27
- } ) ;
28
- return store ;
29
- } ) ;
30
30
} ) ;
31
31
32
32
describe ( "on" , ( ) => {
33
33
it ( "should invoke login callback when user is set to an object" , ( ) => {
34
- const store = require ( "./state/store" ) ;
34
+ const { default : store } = require ( "./state/store" ) ;
35
35
const { default : netlifyIdentity } = require ( "./netlify-identity" ) ;
36
36
37
37
const loginCallback = jest . fn ( ) ;
@@ -46,7 +46,7 @@ describe("netlifyIdentity", () => {
46
46
} ) ;
47
47
48
48
it ( "should invoke logout callback when user is set to null" , ( ) => {
49
- const store = require ( "./state/store" ) ;
49
+ const { default : store } = require ( "./state/store" ) ;
50
50
store . user = {
51
51
name : "user"
52
52
} ;
@@ -62,7 +62,7 @@ describe("netlifyIdentity", () => {
62
62
} ) ;
63
63
64
64
it ( "should not invoke login callback when user is set to null" , ( ) => {
65
- const store = require ( "./state/store" ) ;
65
+ const { default : store } = require ( "./state/store" ) ;
66
66
store . user = {
67
67
name : "user"
68
68
} ;
@@ -78,7 +78,7 @@ describe("netlifyIdentity", () => {
78
78
} ) ;
79
79
80
80
it ( "should not invoke logout callback when user is set to an object" , ( ) => {
81
- const store = require ( "./state/store" ) ;
81
+ const { default : store } = require ( "./state/store" ) ;
82
82
store . user = null ;
83
83
84
84
const { default : netlifyIdentity } = require ( "./netlify-identity" ) ;
@@ -102,7 +102,7 @@ describe("netlifyIdentity", () => {
102
102
} ) ;
103
103
104
104
it ( "should remove all callbacks when called with only first argument" , ( ) => {
105
- const store = require ( "./state/store" ) ;
105
+ const { default : store } = require ( "./state/store" ) ;
106
106
const { default : netlifyIdentity } = require ( "./netlify-identity" ) ;
107
107
108
108
const loginCallback1 = jest . fn ( ) ;
@@ -132,7 +132,7 @@ describe("netlifyIdentity", () => {
132
132
} ) ;
133
133
134
134
it ( "should remove a specific callback when called with two arguments" , ( ) => {
135
- const store = require ( "./state/store" ) ;
135
+ const { default : store } = require ( "./state/store" ) ;
136
136
const { default : netlifyIdentity } = require ( "./netlify-identity" ) ;
137
137
138
138
const loginCallback1 = jest . fn ( ) ;
@@ -161,4 +161,26 @@ describe("netlifyIdentity", () => {
161
161
expect ( loginCallback2 ) . toHaveBeenCalledTimes ( 1 ) ;
162
162
} ) ;
163
163
} ) ;
164
+
165
+ describe ( "init" , ( ) => {
166
+ it ( "should only invoke init event once when on localhost and netlifySiteURL is set" , ( ) => {
167
+ window . location = { hostname : "localhost" } ;
168
+ localStorage . setItem ( "netlifySiteURL" , "https://my-site.netlify.app/" ) ;
169
+
170
+ const { default : store } = require ( "./state/store" ) ;
171
+ const { default : netlifyIdentity } = require ( "./netlify-identity" ) ;
172
+
173
+ const initCallback = jest . fn ( ) ;
174
+ netlifyIdentity . on ( "init" , initCallback ) ;
175
+
176
+ netlifyIdentity . init ( ) ;
177
+
178
+ expect ( initCallback ) . toHaveBeenCalledTimes ( 1 ) ;
179
+ expect ( store . siteURL ) . toEqual ( "https://my-site.netlify.app/" ) ;
180
+ expect ( store . gotrue . APIUrl ) . toEqual (
181
+ "https://my-site.netlify.app/.netlify/identity"
182
+ ) ;
183
+ expect ( store . gotrue . setCookie ) . toEqual ( false ) ;
184
+ } ) ;
185
+ } ) ;
164
186
} ) ;
0 commit comments