15
15
*/
16
16
import { describe , beforeEach , afterEach , it , expect , vi } from 'vitest' ;
17
17
18
- import * as logging from './modules/logging/logger' ;
19
-
20
18
import Optimizely from './optimizely' ;
21
19
import testData from './tests/test_data' ;
22
20
import packageJSON from '../package.json' ;
23
21
import optimizelyFactory from './index.react_native' ;
24
22
import configValidator from './utils/config_validator' ;
25
23
import { getMockProjectConfigManager } from './tests/mock/mock_project_config_manager' ;
26
24
import { createProjectConfig } from './project_config/project_config' ;
25
+ import { getMockLogger } from './tests/mock/mock_logger' ;
27
26
28
27
vi . mock ( '@react-native-community/netinfo' ) ;
29
28
vi . mock ( 'react-native-get-random-values' )
@@ -41,9 +40,6 @@ describe('javascript-sdk/react-native', () => {
41
40
42
41
describe ( 'APIs' , ( ) => {
43
42
it ( 'should expose logger, errorHandler, eventDispatcher and enums' , ( ) => {
44
- expect ( optimizelyFactory . logging ) . toBeDefined ( ) ;
45
- expect ( optimizelyFactory . logging . createLogger ) . toBeDefined ( ) ;
46
- expect ( optimizelyFactory . logging . createNoOpLogger ) . toBeDefined ( ) ;
47
43
expect ( optimizelyFactory . errorHandler ) . toBeDefined ( ) ;
48
44
expect ( optimizelyFactory . eventDispatcher ) . toBeDefined ( ) ;
49
45
expect ( optimizelyFactory . enums ) . toBeDefined ( ) ;
@@ -56,29 +52,29 @@ describe('javascript-sdk/react-native', () => {
56
52
} } ;
57
53
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
58
54
// @ts -ignore
59
- let silentLogger ;
55
+ let mockLogger ;
60
56
61
57
beforeEach ( ( ) => {
62
58
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
63
59
// @ts -ignore
64
- silentLogger = optimizelyFactory . logging . createLogger ( ) ;
60
+ mockLogger = getMockLogger ( ) ;
65
61
vi . spyOn ( console , 'error' ) ;
66
- vi . spyOn ( configValidator , 'validate' ) . mockImplementation ( ( ) => {
67
- throw new Error ( 'Invalid config or something' ) ;
68
- } ) ;
69
62
} ) ;
70
63
71
64
afterEach ( ( ) => {
72
65
vi . resetAllMocks ( ) ;
73
66
} ) ;
74
67
75
68
it ( 'should not throw if the provided config is not valid' , ( ) => {
69
+ vi . spyOn ( configValidator , 'validate' ) . mockImplementation ( ( ) => {
70
+ throw new Error ( 'Invalid config or something' ) ;
71
+ } ) ;
76
72
expect ( function ( ) {
77
73
const optlyInstance = optimizelyFactory . createInstance ( {
78
74
projectConfigManager : getMockProjectConfigManager ( ) ,
79
75
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
80
76
// @ts -ignore
81
- logger : silentLogger ,
77
+ logger : mockLogger ,
82
78
} ) ;
83
79
} ) . not . toThrow ( ) ;
84
80
} ) ;
@@ -89,7 +85,7 @@ describe('javascript-sdk/react-native', () => {
89
85
errorHandler : fakeErrorHandler ,
90
86
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
91
87
// @ts -ignore
92
- logger : silentLogger ,
88
+ logger : mockLogger ,
93
89
} ) ;
94
90
95
91
expect ( optlyInstance ) . toBeInstanceOf ( Optimizely ) ;
@@ -104,7 +100,7 @@ describe('javascript-sdk/react-native', () => {
104
100
errorHandler : fakeErrorHandler ,
105
101
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
106
102
// @ts -ignore
107
- logger : silentLogger ,
103
+ logger : mockLogger ,
108
104
} ) ;
109
105
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
110
106
// @ts -ignore
@@ -114,64 +110,64 @@ describe('javascript-sdk/react-native', () => {
114
110
expect ( packageJSON . version ) . toEqual ( optlyInstance . clientVersion ) ;
115
111
} ) ;
116
112
117
- it ( 'should allow passing of "react-sdk" as the clientEngine and convert it to "react-native-sdk"' , ( ) => {
118
- const optlyInstance = optimizelyFactory . createInstance ( {
119
- clientEngine : 'react-sdk' ,
120
- projectConfigManager : getMockProjectConfigManager ( ) ,
121
- errorHandler : fakeErrorHandler ,
122
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
123
- // @ts -ignore
124
- logger : silentLogger ,
125
- } ) ;
126
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
127
- // @ts -ignore
128
- expect ( 'react-native-sdk' ) . toEqual ( optlyInstance . clientEngine ) ;
129
- } ) ;
130
-
131
- describe ( 'when passing in logLevel' , ( ) => {
132
- beforeEach ( ( ) => {
133
- vi . spyOn ( logging , 'setLogLevel' ) ;
134
- } ) ;
135
-
136
- afterEach ( ( ) => {
137
- vi . resetAllMocks ( ) ;
138
- } ) ;
139
-
140
- it ( 'should call logging.setLogLevel' , ( ) => {
141
- optimizelyFactory . createInstance ( {
142
- projectConfigManager : getMockProjectConfigManager ( {
143
- initConfig : createProjectConfig ( testData . getTestProjectConfig ( ) ) ,
144
- } ) ,
145
- logLevel : optimizelyFactory . enums . LOG_LEVEL . ERROR ,
146
- } ) ;
147
- expect ( logging . setLogLevel ) . toBeCalledTimes ( 1 ) ;
148
- expect ( logging . setLogLevel ) . toBeCalledWith ( optimizelyFactory . enums . LOG_LEVEL . ERROR ) ;
149
- } ) ;
150
- } ) ;
151
-
152
- describe ( 'when passing in logger' , ( ) => {
153
- beforeEach ( ( ) => {
154
- vi . spyOn ( logging , 'setLogHandler' ) ;
155
- } ) ;
156
-
157
- afterEach ( ( ) => {
158
- vi . resetAllMocks ( ) ;
159
- } ) ;
160
-
161
- it ( 'should call logging.setLogHandler with the supplied logger' , ( ) => {
162
- const fakeLogger = { log : function ( ) { } } ;
163
- optimizelyFactory . createInstance ( {
164
- projectConfigManager : getMockProjectConfigManager ( {
165
- initConfig : createProjectConfig ( testData . getTestProjectConfig ( ) ) ,
166
- } ) ,
167
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
168
- // @ts -ignore
169
- logger : fakeLogger ,
170
- } ) ;
171
- expect ( logging . setLogHandler ) . toBeCalledTimes ( 1 ) ;
172
- expect ( logging . setLogHandler ) . toBeCalledWith ( fakeLogger ) ;
173
- } ) ;
174
- } ) ;
113
+ // it('should allow passing of "react-sdk" as the clientEngine and convert it to "react-native-sdk"', () => {
114
+ // const optlyInstance = optimizelyFactory.createInstance({
115
+ // clientEngine: 'react-sdk',
116
+ // projectConfigManager: getMockProjectConfigManager(),
117
+ // errorHandler: fakeErrorHandler,
118
+ // // eslint-disable-next-line @typescript-eslint/ban-ts-comment
119
+ // // @ts -ignore
120
+ // logger: mockLogger ,
121
+ // });
122
+ // // eslint-disable-next-line @typescript-eslint/ban-ts-comment
123
+ // // @ts -ignore
124
+ // expect('react-native-sdk').toEqual(optlyInstance.clientEngine);
125
+ // });
126
+
127
+ // describe('when passing in logLevel', () => {
128
+ // beforeEach(() => {
129
+ // vi.spyOn(logging, 'setLogLevel');
130
+ // });
131
+
132
+ // afterEach(() => {
133
+ // vi.resetAllMocks();
134
+ // });
135
+
136
+ // it('should call logging.setLogLevel', () => {
137
+ // optimizelyFactory.createInstance({
138
+ // projectConfigManager: getMockProjectConfigManager({
139
+ // initConfig: createProjectConfig(testData.getTestProjectConfig()),
140
+ // }),
141
+ // logLevel: optimizelyFactory.enums.LOG_LEVEL.ERROR,
142
+ // });
143
+ // expect(logging.setLogLevel).toBeCalledTimes(1);
144
+ // expect(logging.setLogLevel).toBeCalledWith(optimizelyFactory.enums.LOG_LEVEL.ERROR);
145
+ // });
146
+ // });
147
+
148
+ // describe('when passing in logger', () => {
149
+ // beforeEach(() => {
150
+ // vi.spyOn(logging, 'setLogHandler');
151
+ // });
152
+
153
+ // afterEach(() => {
154
+ // vi.resetAllMocks();
155
+ // });
156
+
157
+ // it('should call logging.setLogHandler with the supplied logger', () => {
158
+ // const fakeLogger = { log: function() {} };
159
+ // optimizelyFactory.createInstance({
160
+ // projectConfigManager: getMockProjectConfigManager({
161
+ // initConfig: createProjectConfig(testData.getTestProjectConfig()),
162
+ // }),
163
+ // // eslint-disable-next-line @typescript-eslint/ban-ts-comment
164
+ // // @ts -ignore
165
+ // logger: fakeLogger,
166
+ // });
167
+ // expect(logging.setLogHandler).toBeCalledTimes(1);
168
+ // expect(logging.setLogHandler).toBeCalledWith(fakeLogger);
169
+ // });
170
+ // });
175
171
} ) ;
176
172
} ) ;
177
173
} ) ;
0 commit comments