@volley/vwr-loader 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/cli.js +37 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/main.js +11 -11
  4. package/dist/main.js.map +1 -1
  5. package/dist/{datadog.d.ts → vwr/src/datadog.d.ts} +7 -3
  6. package/dist/vwr/src/datadog.d.ts.map +1 -0
  7. package/dist/{datadog.js → vwr/src/datadog.js} +6 -5
  8. package/dist/vwr/src/datadog.js.map +1 -0
  9. package/dist/{envDefaults.d.ts → vwr/src/envDefaults.d.ts} +1 -0
  10. package/dist/vwr/src/envDefaults.d.ts.map +1 -0
  11. package/dist/{envDefaults.js → vwr/src/envDefaults.js} +26 -0
  12. package/dist/vwr/src/envDefaults.js.map +1 -0
  13. package/dist/vwr/src/logger.d.ts +15 -0
  14. package/dist/vwr/src/logger.d.ts.map +1 -0
  15. package/dist/{logger.js → vwr/src/logger.js} +30 -46
  16. package/dist/vwr/src/logger.js.map +1 -0
  17. package/dist/vwr/src/native/device-info/getDeviceId.d.ts +13 -0
  18. package/dist/vwr/src/native/device-info/getDeviceId.d.ts.map +1 -0
  19. package/dist/vwr/src/native/device-info/getDeviceId.js +137 -0
  20. package/dist/vwr/src/native/device-info/getDeviceId.js.map +1 -0
  21. package/dist/{vwrConfig.d.ts → vwr/src/vwrConfig.d.ts} +5 -0
  22. package/dist/vwr/src/vwrConfig.d.ts.map +1 -0
  23. package/dist/{vwrConfig.js → vwr/src/vwrConfig.js} +13 -5
  24. package/dist/vwr/src/vwrConfig.js.map +1 -0
  25. package/dist/vwr-loader/src/__mocks__/@datadog/browser-logs.d.ts.map +1 -0
  26. package/dist/vwr-loader/src/__mocks__/@datadog/browser-logs.js.map +1 -0
  27. package/dist/vwr-loader/src/__mocks__/@datadog/browser-rum.d.ts.map +1 -0
  28. package/dist/vwr-loader/src/__mocks__/@datadog/browser-rum.js.map +1 -0
  29. package/dist/vwr-loader/src/__mocks__/vwrModule.d.ts.map +1 -0
  30. package/dist/vwr-loader/src/__mocks__/vwrModule.js.map +1 -0
  31. package/dist/vwr-loader/src/amplitudeFlagFetcher.d.ts.map +1 -0
  32. package/dist/vwr-loader/src/amplitudeFlagFetcher.js.map +1 -0
  33. package/dist/vwr-loader/src/errors/InitializationError.d.ts.map +1 -0
  34. package/dist/vwr-loader/src/errors/InitializationError.js.map +1 -0
  35. package/dist/vwr-loader/src/errors/ensureError.d.ts.map +1 -0
  36. package/dist/vwr-loader/src/errors/ensureError.js.map +1 -0
  37. package/dist/vwr-loader/src/errors/index.d.ts.map +1 -0
  38. package/dist/vwr-loader/src/errors/index.js.map +1 -0
  39. package/dist/vwr-loader/src/exitHandler.d.ts.map +1 -0
  40. package/dist/{exitHandler.js → vwr-loader/src/exitHandler.js} +2 -3
  41. package/dist/vwr-loader/src/exitHandler.js.map +1 -0
  42. package/dist/vwr-loader/src/getEnvironment.d.ts.map +1 -0
  43. package/dist/vwr-loader/src/getEnvironment.js.map +1 -0
  44. package/dist/vwr-loader/src/getShellVersion.d.ts.map +1 -0
  45. package/dist/vwr-loader/src/getShellVersion.js.map +1 -0
  46. package/dist/vwr-loader/src/index.d.ts +8 -0
  47. package/dist/vwr-loader/src/index.d.ts.map +1 -0
  48. package/dist/vwr-loader/src/index.js +6 -0
  49. package/dist/vwr-loader/src/index.js.map +1 -0
  50. package/dist/vwr-loader/src/loadVwr.d.ts.map +1 -0
  51. package/dist/{loadVwr.js → vwr-loader/src/loadVwr.js} +9 -6
  52. package/dist/vwr-loader/src/loadVwr.js.map +1 -0
  53. package/dist/vwr-loader/src/logger.d.ts +4 -0
  54. package/dist/vwr-loader/src/logger.d.ts.map +1 -0
  55. package/dist/vwr-loader/src/logger.js +10 -0
  56. package/dist/vwr-loader/src/logger.js.map +1 -0
  57. package/dist/vwr-loader/src/main.d.ts +2 -0
  58. package/dist/vwr-loader/src/main.d.ts.map +1 -0
  59. package/dist/vwr-loader/src/main.js +96 -0
  60. package/dist/vwr-loader/src/main.js.map +1 -0
  61. package/dist/vwr-loader/src/polyfills.d.ts.map +1 -0
  62. package/dist/vwr-loader/src/polyfills.js.map +1 -0
  63. package/dist/{test-setup.d.ts.map → vwr-loader/src/test-setup.d.ts.map} +1 -1
  64. package/dist/vwr-loader/src/test-setup.js.map +1 -0
  65. package/package.json +10 -8
  66. package/src/exitHandler.test.ts +44 -0
  67. package/src/exitHandler.ts +4 -3
  68. package/src/getShellVersion.ts +2 -1
  69. package/src/index.ts +3 -3
  70. package/src/loadVwr.test.ts +10 -5
  71. package/src/loadVwr.ts +18 -12
  72. package/src/logger.ts +5 -115
  73. package/src/main.ts +3 -2
  74. package/src/vite-env.d.ts +1 -0
  75. package/dist/__mocks__/@datadog/browser-logs.d.ts.map +0 -1
  76. package/dist/__mocks__/@datadog/browser-logs.js.map +0 -1
  77. package/dist/__mocks__/@datadog/browser-rum.d.ts.map +0 -1
  78. package/dist/__mocks__/@datadog/browser-rum.js.map +0 -1
  79. package/dist/__mocks__/vwrModule.d.ts.map +0 -1
  80. package/dist/__mocks__/vwrModule.js.map +0 -1
  81. package/dist/amplitudeFlagFetcher.d.ts.map +0 -1
  82. package/dist/amplitudeFlagFetcher.js.map +0 -1
  83. package/dist/datadog.d.ts.map +0 -1
  84. package/dist/datadog.js.map +0 -1
  85. package/dist/envDefaults.d.ts.map +0 -1
  86. package/dist/envDefaults.js.map +0 -1
  87. package/dist/errors/InitializationError.d.ts.map +0 -1
  88. package/dist/errors/InitializationError.js.map +0 -1
  89. package/dist/errors/ensureError.d.ts.map +0 -1
  90. package/dist/errors/ensureError.js.map +0 -1
  91. package/dist/errors/index.d.ts.map +0 -1
  92. package/dist/errors/index.js.map +0 -1
  93. package/dist/exitHandler.d.ts.map +0 -1
  94. package/dist/exitHandler.js.map +0 -1
  95. package/dist/getDeviceId.d.ts +0 -26
  96. package/dist/getDeviceId.d.ts.map +0 -1
  97. package/dist/getDeviceId.js +0 -209
  98. package/dist/getDeviceId.js.map +0 -1
  99. package/dist/getEnvironment.d.ts.map +0 -1
  100. package/dist/getEnvironment.js.map +0 -1
  101. package/dist/getShellVersion.d.ts.map +0 -1
  102. package/dist/getShellVersion.js.map +0 -1
  103. package/dist/index.d.ts +0 -8
  104. package/dist/index.d.ts.map +0 -1
  105. package/dist/index.js +0 -6
  106. package/dist/index.js.map +0 -1
  107. package/dist/loadVwr.d.ts.map +0 -1
  108. package/dist/loadVwr.js.map +0 -1
  109. package/dist/logger.d.ts +0 -12
  110. package/dist/logger.d.ts.map +0 -1
  111. package/dist/logger.js.map +0 -1
  112. package/dist/polyfills.d.ts.map +0 -1
  113. package/dist/polyfills.js.map +0 -1
  114. package/dist/test-setup.js.map +0 -1
  115. package/dist/types.d.ts +0 -103
  116. package/dist/types.d.ts.map +0 -1
  117. package/dist/types.js +0 -5
  118. package/dist/types.js.map +0 -1
  119. package/dist/vwrConfig.d.ts.map +0 -1
  120. package/dist/vwrConfig.js.map +0 -1
  121. package/src/datadog.ts +0 -55
  122. package/src/envDefaults.ts +0 -94
  123. package/src/getDeviceId.test.ts +0 -298
  124. package/src/getDeviceId.ts +0 -224
  125. package/src/types.ts +0 -105
  126. package/src/vwrConfig.test.ts +0 -386
  127. package/src/vwrConfig.ts +0 -374
  128. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-logs.d.ts +0 -0
  129. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-logs.js +0 -0
  130. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-rum.d.ts +0 -0
  131. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/@datadog/browser-rum.js +0 -0
  132. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/vwrModule.d.ts +0 -0
  133. /package/dist/{__mocks__ → vwr-loader/src/__mocks__}/vwrModule.js +0 -0
  134. /package/dist/{amplitudeFlagFetcher.d.ts → vwr-loader/src/amplitudeFlagFetcher.d.ts} +0 -0
  135. /package/dist/{amplitudeFlagFetcher.js → vwr-loader/src/amplitudeFlagFetcher.js} +0 -0
  136. /package/dist/{errors → vwr-loader/src/errors}/InitializationError.d.ts +0 -0
  137. /package/dist/{errors → vwr-loader/src/errors}/InitializationError.js +0 -0
  138. /package/dist/{errors → vwr-loader/src/errors}/ensureError.d.ts +0 -0
  139. /package/dist/{errors → vwr-loader/src/errors}/ensureError.js +0 -0
  140. /package/dist/{errors → vwr-loader/src/errors}/index.d.ts +0 -0
  141. /package/dist/{errors → vwr-loader/src/errors}/index.js +0 -0
  142. /package/dist/{exitHandler.d.ts → vwr-loader/src/exitHandler.d.ts} +0 -0
  143. /package/dist/{getEnvironment.d.ts → vwr-loader/src/getEnvironment.d.ts} +0 -0
  144. /package/dist/{getEnvironment.js → vwr-loader/src/getEnvironment.js} +0 -0
  145. /package/dist/{getShellVersion.d.ts → vwr-loader/src/getShellVersion.d.ts} +0 -0
  146. /package/dist/{getShellVersion.js → vwr-loader/src/getShellVersion.js} +0 -0
  147. /package/dist/{loadVwr.d.ts → vwr-loader/src/loadVwr.d.ts} +0 -0
  148. /package/dist/{polyfills.d.ts → vwr-loader/src/polyfills.d.ts} +0 -0
  149. /package/dist/{polyfills.js → vwr-loader/src/polyfills.js} +0 -0
  150. /package/dist/{test-setup.d.ts → vwr-loader/src/test-setup.d.ts} +0 -0
  151. /package/dist/{test-setup.js → vwr-loader/src/test-setup.js} +0 -0
@@ -1,386 +0,0 @@
1
- import type { ILogger } from "@volley/logger"
2
- import { describe, expect, it, vi } from "vitest"
3
-
4
- // Stub environment to use "production" which maps to ENV_DEFAULTS["production"]
5
- vi.stubEnv("VITE_ENVIRONMENT", "production")
6
-
7
- import type { VWRConfig, VWRConfigRequest } from "./vwrConfig"
8
-
9
- const mockLogger = {
10
- info: vi.fn(),
11
- warn: vi.fn(),
12
- error: vi.fn(),
13
- debug: vi.fn(),
14
- child: vi.fn(() => mockLogger),
15
- } as unknown as ILogger
16
-
17
- describe("vwrConfig", async () => {
18
- const { getVWRConfig, validateConfig } = await import("./vwrConfig")
19
- describe("validateConfig", () => {
20
- const config = {
21
- vwrUrl: "https://vwr.example.com",
22
- hubUrl: "https://hub.example.com",
23
- launchUrl: "https://launch.example.com",
24
- trustedDomains: ["example.com"],
25
- platformApiUrl: "https://api.example.com",
26
- platformAuthApiUrl: "https://auth.example.com",
27
- }
28
-
29
- it("returns false for empty vwrUrl", () => {
30
- const invalidConfig = { ...config, vwrUrl: "" }
31
- expect(validateConfig(invalidConfig)).toBe(false)
32
- })
33
-
34
- it("returns false for undefined vwrUrl", () => {
35
- const invalidConfig: VWRConfig = JSON.parse(
36
- JSON.stringify({ ...config, vwrUrl: undefined })
37
- )
38
- expect(validateConfig(invalidConfig)).toBe(false)
39
- })
40
-
41
- it("returns false for empty hubUrl", () => {
42
- const invalidConfig = { ...config, hubUrl: "" }
43
- expect(validateConfig(invalidConfig)).toBe(false)
44
- })
45
-
46
- it("returns false for undefined hubUrl", () => {
47
- const invalidConfig: VWRConfig = JSON.parse(
48
- JSON.stringify({ ...config, hubUrl: undefined })
49
- )
50
- expect(validateConfig(invalidConfig)).toBe(false)
51
- })
52
-
53
- it("returns true for empty launchUrl (optional field)", () => {
54
- const validConfig = { ...config, launchUrl: "" }
55
- expect(validateConfig(validConfig)).toBe(true)
56
- })
57
-
58
- it("returns true for undefined launchUrl (optional field)", () => {
59
- const validConfig: VWRConfig = JSON.parse(
60
- JSON.stringify({ ...config, launchUrl: undefined })
61
- )
62
- expect(validateConfig(validConfig)).toBe(true)
63
- })
64
-
65
- it("returns false for empty trustedDomains", () => {
66
- const invalidConfig = { ...config, trustedDomains: [] }
67
- expect(validateConfig(invalidConfig)).toBe(false)
68
- })
69
-
70
- it("returns false for undefined trustedDomains", () => {
71
- const invalidConfig: VWRConfig = JSON.parse(
72
- JSON.stringify({ ...config, trustedDomains: undefined })
73
- )
74
- expect(validateConfig(invalidConfig)).toBe(false)
75
- })
76
-
77
- it("returns false for non array trustedDomains", () => {
78
- const invalidConfig: VWRConfig = JSON.parse(
79
- JSON.stringify({ ...config, trustedDomains: "" })
80
- )
81
- expect(validateConfig(invalidConfig)).toBe(false)
82
- })
83
- })
84
-
85
- describe("getVWRConfig", () => {
86
- const configRequest: VWRConfigRequest = {
87
- configUrl: "https://config.example.com",
88
- configFile: "vwr-config.json",
89
- platform: "web",
90
- deviceId: "device-123",
91
- environment: "production",
92
- shellVersion: "1.0.0",
93
- }
94
-
95
- const fetchSpy = vi.spyOn(global, "fetch")
96
-
97
- vi.spyOn(global, "Request").mockImplementation(
98
- (_input: URL | RequestInfo, _init?: RequestInit) => {
99
- return {} as Request
100
- }
101
- )
102
-
103
- it("returns default config when no configs are found", async () => {
104
- const result = await getVWRConfig(configRequest, mockLogger)
105
- // Defaults come from ENV_DEFAULTS["production"]
106
- expect(result.config.vwrUrl).toBe(
107
- "https://vwr.volley.tv/v1/1.0.0/vwr.js"
108
- )
109
- expect(result.config.hubUrl).toBe(
110
- "https://game-clients.volley.tv/hub"
111
- )
112
- expect(result.config.launchUrl).toBeUndefined() // Optional, not set by default
113
- // trustedDomains includes: hubUrl origin, vwrUrl origin, plus trustedOrigins from env defaults
114
- expect(result.config.trustedDomains).toEqual([
115
- "https://game-clients.volley.tv",
116
- "https://vwr.volley.tv",
117
- "https://volley.tv",
118
- "https://vl.ly",
119
- "https://vly.gg",
120
- ])
121
- expect(result.source).toBe("defaults")
122
- })
123
-
124
- it("returns local config when available", async () => {
125
- fetchSpy.mockResolvedValueOnce(
126
- new Response(
127
- JSON.stringify({
128
- vwrUrl: "https://local-vwr.example.com",
129
- hubUrl: "https://local-hub.example.com",
130
- launchUrl: "https://local-launch.example.com",
131
- trustedDomains: [
132
- "https://local-hub.example.com",
133
- "https://local-vwr.example.com",
134
- "https://local-launch.example.com",
135
- ],
136
- })
137
- )
138
- )
139
- fetchSpy.mockResolvedValueOnce(
140
- new Response(
141
- JSON.stringify({
142
- vwrUrl: "https://device-vwr.example.com",
143
- hubUrl: "https://device-hub.example.com",
144
- launchUrl: "https://device-launch.example.com",
145
- trustedDomains: [
146
- "https://device-hub.example.com",
147
- "https://device-vwr.example.com",
148
- "https://device-launch.example.com",
149
- ],
150
- })
151
- )
152
- )
153
- fetchSpy.mockResolvedValueOnce(
154
- new Response(
155
- JSON.stringify({
156
- vwrUrl: "https://shell-vwr.example.com",
157
- hubUrl: "https://shell-hub.example.com",
158
- launchUrl: "https://shell-launch.example.com",
159
- trustedDomains: [
160
- "https://shell-hub.example.com",
161
- "https://shell-vwr.example.com",
162
- "https://shell-launch.example.com",
163
- ],
164
- })
165
- )
166
- )
167
- fetchSpy.mockResolvedValueOnce(
168
- new Response(
169
- JSON.stringify({
170
- vwrUrl: "https://environment-vwr.example.com",
171
- hubUrl: "https://environment-hub.example.com",
172
- launchUrl: "https://environment-launch.example.com",
173
- trustedDomains: [
174
- "https://environment-hub.example.com",
175
- "https://environment-vwr.example.com",
176
- "https://environment-launch.example.com",
177
- ],
178
- })
179
- )
180
- )
181
- const result = await getVWRConfig(configRequest, mockLogger)
182
- expect(validateConfig(result.config)).toBe(true)
183
- expect(result.config.vwrUrl).toBe("https://local-vwr.example.com")
184
- expect(result.config.hubUrl).toBe("https://local-hub.example.com")
185
- expect(result.config.launchUrl).toBe(
186
- "https://local-launch.example.com"
187
- )
188
- expect(result.config.trustedDomains).toEqual([
189
- "https://local-hub.example.com",
190
- "https://local-vwr.example.com",
191
- "https://local-launch.example.com",
192
- ])
193
- expect(result.source).toBe("local")
194
- })
195
-
196
- it("returns device config when available", async () => {
197
- // local - 404 (not found)
198
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
199
- // device - success
200
- fetchSpy.mockResolvedValueOnce(
201
- new Response(
202
- JSON.stringify({
203
- vwrUrl: "https://device-vwr.example.com",
204
- hubUrl: "https://device-hub.example.com",
205
- launchUrl: "https://device-launch.example.com",
206
- trustedDomains: [
207
- "https://device-hub.example.com",
208
- "https://device-vwr.example.com",
209
- "https://device-launch.example.com",
210
- ],
211
- })
212
- )
213
- )
214
- // shellVersion - success (but lower priority)
215
- fetchSpy.mockResolvedValueOnce(
216
- new Response(
217
- JSON.stringify({
218
- vwrUrl: "https://shell-vwr.example.com",
219
- hubUrl: "https://shell-hub.example.com",
220
- launchUrl: "https://shell-launch.example.com",
221
- trustedDomains: [
222
- "https://shell-hub.example.com",
223
- "https://shell-vwr.example.com",
224
- "https://shell-launch.example.com",
225
- ],
226
- })
227
- )
228
- )
229
- // environment - success (but lower priority)
230
- fetchSpy.mockResolvedValueOnce(
231
- new Response(
232
- JSON.stringify({
233
- vwrUrl: "https://environment-vwr.example.com",
234
- hubUrl: "https://environment-hub.example.com",
235
- launchUrl: "https://environment-launch.example.com",
236
- trustedDomains: [
237
- "https://environment-hub.example.com",
238
- "https://environment-vwr.example.com",
239
- "https://environment-launch.example.com",
240
- ],
241
- })
242
- )
243
- )
244
- const result = await getVWRConfig(configRequest, mockLogger)
245
- expect(validateConfig(result.config)).toBe(true)
246
- expect(result.config.vwrUrl).toBe("https://device-vwr.example.com")
247
- expect(result.config.hubUrl).toBe("https://device-hub.example.com")
248
- expect(result.config.launchUrl).toBe(
249
- "https://device-launch.example.com"
250
- )
251
- expect(result.config.trustedDomains).toEqual([
252
- "https://device-hub.example.com",
253
- "https://device-vwr.example.com",
254
- "https://device-launch.example.com",
255
- ])
256
- expect(result.source).toBe("device")
257
- })
258
-
259
- it("returns shell config when available", async () => {
260
- // local - 404 (not found)
261
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
262
- // device - 404 (not found)
263
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
264
- // shellVersion - success
265
- fetchSpy.mockResolvedValueOnce(
266
- new Response(
267
- JSON.stringify({
268
- vwrUrl: "https://shell-vwr.example.com",
269
- hubUrl: "https://shell-hub.example.com",
270
- launchUrl: "https://shell-launch.example.com",
271
- trustedDomains: [
272
- "https://shell-hub.example.com",
273
- "https://shell-vwr.example.com",
274
- "https://shell-launch.example.com",
275
- ],
276
- })
277
- )
278
- )
279
- // environment - success (but lower priority)
280
- fetchSpy.mockResolvedValueOnce(
281
- new Response(
282
- JSON.stringify({
283
- vwrUrl: "https://environment-vwr.example.com",
284
- hubUrl: "https://environment-hub.example.com",
285
- launchUrl: "https://environment-launch.example.com",
286
- trustedDomains: [
287
- "https://environment-hub.example.com",
288
- "https://environment-vwr.example.com",
289
- "https://environment-launch.example.com",
290
- ],
291
- })
292
- )
293
- )
294
- const result = await getVWRConfig(configRequest, mockLogger)
295
- expect(validateConfig(result.config)).toBe(true)
296
- expect(result.config.vwrUrl).toBe("https://shell-vwr.example.com")
297
- expect(result.config.hubUrl).toBe("https://shell-hub.example.com")
298
- expect(result.config.launchUrl).toBe(
299
- "https://shell-launch.example.com"
300
- )
301
- expect(result.config.trustedDomains).toEqual([
302
- "https://shell-hub.example.com",
303
- "https://shell-vwr.example.com",
304
- "https://shell-launch.example.com",
305
- ])
306
- expect(result.source).toBe("shellVersion")
307
- })
308
-
309
- it("returns environment config when available", async () => {
310
- // local - 404 (not found)
311
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
312
- // device - 404 (not found)
313
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
314
- // shellVersion - 404 (not found)
315
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
316
- // environment - success
317
- fetchSpy.mockResolvedValueOnce(
318
- new Response(
319
- JSON.stringify({
320
- vwrUrl: "https://environment-vwr.example.com",
321
- hubUrl: "https://environment-hub.example.com",
322
- launchUrl: "https://environment-launch.example.com",
323
- trustedDomains: [
324
- "https://environment-hub.example.com",
325
- "https://environment-vwr.example.com",
326
- "https://environment-launch.example.com",
327
- ],
328
- })
329
- )
330
- )
331
- const result = await getVWRConfig(configRequest, mockLogger)
332
- expect(validateConfig(result.config)).toBe(true)
333
- expect(result.config.vwrUrl).toBe(
334
- "https://environment-vwr.example.com"
335
- )
336
- expect(result.config.hubUrl).toBe(
337
- "https://environment-hub.example.com"
338
- )
339
- expect(result.config.launchUrl).toBe(
340
- "https://environment-launch.example.com"
341
- )
342
- expect(result.config.trustedDomains).toEqual([
343
- "https://environment-hub.example.com",
344
- "https://environment-vwr.example.com",
345
- "https://environment-launch.example.com",
346
- ])
347
- expect(result.source).toBe("environment")
348
- })
349
-
350
- it("returns default config for missing values", async () => {
351
- // local - 404 (not found)
352
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
353
- // device - 404 (not found)
354
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
355
- // shellVersion - 404 (not found)
356
- fetchSpy.mockResolvedValueOnce(new Response(null, { status: 404 }))
357
- // environment - success (partial config, missing launchUrl)
358
- fetchSpy.mockResolvedValueOnce(
359
- new Response(
360
- JSON.stringify({
361
- vwrUrl: "https://environment-vwr.example.com",
362
- hubUrl: "https://environment-hub.example.com",
363
- trustedDomains: [
364
- "https://environment-hub.example.com",
365
- "https://environment-vwr.example.com",
366
- ],
367
- })
368
- )
369
- )
370
- const result = await getVWRConfig(configRequest, mockLogger)
371
- expect(result.config.vwrUrl).toBe(
372
- "https://environment-vwr.example.com"
373
- )
374
- expect(result.config.hubUrl).toBe(
375
- "https://environment-hub.example.com"
376
- )
377
- // launchUrl is optional, not filled when missing
378
- expect(result.config.launchUrl).toBeUndefined()
379
- expect(result.config.trustedDomains).toEqual([
380
- "https://environment-hub.example.com",
381
- "https://environment-vwr.example.com",
382
- ])
383
- expect(result.source).toBe("environment")
384
- })
385
- })
386
- })