@@ -5,13 +5,20 @@ import { describe, mock, test } from 'node:test'
5
5
import { Saturn } from '#src/index.js'
6
6
import { concatChunks , generateNodes , getMockServer , HTTP_STATUS_GONE , mockJWT , mockNodesHandlers , mockOrchHandler , mockSaturnOriginHandler , MSW_SERVER_OPTS } from './test-utils.js'
7
7
8
- const TEST_DEFAULT_ORCH = 'https://orchestrator.strn.pl/nodes'
8
+ const TEST_DEFAULT_ORCH = 'https://orchestrator.strn.pl.test /nodes'
9
9
const TEST_NODES_LIST_KEY = 'saturn-nodes'
10
- const TEST_AUTH = 'https://fz3dyeyxmebszwhuiky7vggmsu0rlkoy.lambda-url.us-west-2.on.aws /'
11
- const TEST_ORIGIN_DOMAIN = 'saturn.ms '
10
+ const TEST_AUTH = 'https://auth.test /'
11
+ const TEST_ORIGIN_DOMAIN = 'l1s. saturn.test '
12
12
const CLIENT_KEY = 'key'
13
13
14
- const experimental = true
14
+ const options = {
15
+ cdnURL : TEST_ORIGIN_DOMAIN ,
16
+ orchURL : TEST_DEFAULT_ORCH ,
17
+ authURL : TEST_AUTH ,
18
+ experimental : true ,
19
+ clientKey : CLIENT_KEY ,
20
+ clientId : 'test'
21
+ }
15
22
16
23
describe ( 'Client Fallback' , ( ) => {
17
24
test ( 'Nodes are loaded from the orchestrator if no storage is passed' , async ( t ) => {
@@ -24,7 +31,7 @@ describe('Client Fallback', () => {
24
31
const expectedNodes = generateNodes ( 2 , TEST_ORIGIN_DOMAIN )
25
32
26
33
// No Storage is injected
27
- const saturn = new Saturn ( { clientKey : CLIENT_KEY , experimental } )
34
+ const saturn = new Saturn ( { ... options } )
28
35
const mockOpts = { orchURL : TEST_DEFAULT_ORCH }
29
36
30
37
await saturn . _loadNodes ( mockOpts )
@@ -37,7 +44,7 @@ describe('Client Fallback', () => {
37
44
38
45
test ( 'Storage is invoked correctly when supplied' , async ( t ) => {
39
46
const handlers = [
40
- mockOrchHandler ( 2 , TEST_DEFAULT_ORCH , 'saturn.ms' )
47
+ mockOrchHandler ( 2 , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN )
41
48
]
42
49
const server = getMockServer ( handlers )
43
50
server . listen ( MSW_SERVER_OPTS )
@@ -53,7 +60,7 @@ describe('Client Fallback', () => {
53
60
t . mock . method ( mockStorage , 'get' )
54
61
t . mock . method ( mockStorage , 'set' )
55
62
56
- const saturn = new Saturn ( { storage : mockStorage , clientKey : CLIENT_KEY , experimental } )
63
+ const saturn = new Saturn ( { storage : mockStorage , ... options } )
57
64
58
65
// Mocking options
59
66
const mockOpts = { orchURL : TEST_DEFAULT_ORCH }
@@ -75,7 +82,7 @@ describe('Client Fallback', () => {
75
82
76
83
test ( 'Storage is loaded first when the orch is slower' , async ( t ) => {
77
84
const handlers = [
78
- mockOrchHandler ( 2 , TEST_DEFAULT_ORCH , 'saturn.ms' , 1000 )
85
+ mockOrchHandler ( 2 , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN , 500 )
79
86
]
80
87
const server = getMockServer ( handlers )
81
88
server . listen ( MSW_SERVER_OPTS )
@@ -90,7 +97,7 @@ describe('Client Fallback', () => {
90
97
t . mock . method ( mockStorage , 'get' )
91
98
t . mock . method ( mockStorage , 'set' )
92
99
93
- const saturn = new Saturn ( { storage : mockStorage , clientKey : CLIENT_KEY , experimental } )
100
+ const saturn = new Saturn ( { storage : mockStorage , ... options } )
94
101
95
102
// Mocking options
96
103
const mockOpts = { orchURL : TEST_DEFAULT_ORCH }
@@ -111,7 +118,7 @@ describe('Client Fallback', () => {
111
118
112
119
test ( 'Content Fallback fetches a cid properly' , async ( t ) => {
113
120
const handlers = [
114
- mockOrchHandler ( 2 , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
121
+ mockOrchHandler ( 2 , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
115
122
mockJWT ( TEST_AUTH ) ,
116
123
mockSaturnOriginHandler ( TEST_ORIGIN_DOMAIN , 0 , true ) ,
117
124
...mockNodesHandlers ( 2 , TEST_ORIGIN_DOMAIN )
@@ -129,7 +136,7 @@ describe('Client Fallback', () => {
129
136
t . mock . method ( mockStorage , 'get' )
130
137
t . mock . method ( mockStorage , 'set' )
131
138
132
- const saturn = new Saturn ( { storage : mockStorage , clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
139
+ const saturn = new Saturn ( { storage : mockStorage , ... options } )
133
140
134
141
const cid = saturn . fetchContentWithFallback ( 'bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4' )
135
142
@@ -144,7 +151,7 @@ describe('Client Fallback', () => {
144
151
145
152
test ( 'Content Fallback fetches a cid properly with race' , async ( t ) => {
146
153
const handlers = [
147
- mockOrchHandler ( 5 , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
154
+ mockOrchHandler ( 5 , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
148
155
mockJWT ( TEST_AUTH ) ,
149
156
mockSaturnOriginHandler ( TEST_ORIGIN_DOMAIN , 0 , true ) ,
150
157
...mockNodesHandlers ( 5 , TEST_ORIGIN_DOMAIN )
@@ -162,8 +169,7 @@ describe('Client Fallback', () => {
162
169
t . mock . method ( mockStorage , 'get' )
163
170
t . mock . method ( mockStorage , 'set' )
164
171
165
- const saturn = new Saturn ( { storage : mockStorage , clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
166
- // const origins =
172
+ const saturn = new Saturn ( { ...options } )
167
173
168
174
const cid = saturn . fetchContentWithFallback ( 'bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4' , { raceNodes : true } )
169
175
@@ -178,7 +184,7 @@ describe('Client Fallback', () => {
178
184
179
185
test ( 'Content Fallback with race fetches from consecutive nodes on failure' , async ( t ) => {
180
186
const handlers = [
181
- mockOrchHandler ( 5 , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
187
+ mockOrchHandler ( 5 , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
182
188
mockJWT ( TEST_AUTH ) ,
183
189
mockSaturnOriginHandler ( TEST_ORIGIN_DOMAIN , 0 , true ) ,
184
190
...mockNodesHandlers ( 5 , TEST_ORIGIN_DOMAIN , 2 )
@@ -196,7 +202,7 @@ describe('Client Fallback', () => {
196
202
t . mock . method ( mockStorage , 'get' )
197
203
t . mock . method ( mockStorage , 'set' )
198
204
199
- const saturn = new Saturn ( { storage : mockStorage , clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
205
+ const saturn = new Saturn ( { storage : mockStorage , ... options } )
200
206
201
207
const cid = saturn . fetchContentWithFallback ( 'bafkreifjjcie6lypi6ny7amxnfftagclbuxndqonfipmb64f2km2devei4' , { raceNodes : true } )
202
208
@@ -211,14 +217,14 @@ describe('Client Fallback', () => {
211
217
212
218
test ( 'should fetch content from the first node successfully' , async ( ) => {
213
219
const handlers = [
214
- mockOrchHandler ( 2 , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
220
+ mockOrchHandler ( 2 , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
215
221
mockJWT ( TEST_AUTH ) ,
216
222
...mockNodesHandlers ( 2 , TEST_ORIGIN_DOMAIN )
217
223
]
218
224
219
225
const server = getMockServer ( handlers )
220
226
server . listen ( MSW_SERVER_OPTS )
221
- const saturn = new Saturn ( { clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
227
+ const saturn = new Saturn ( { ... options } )
222
228
223
229
const fetchContentMock = mock . fn ( async function * ( cidPath , opts ) {
224
230
yield Buffer . from ( 'chunk1' )
@@ -239,14 +245,14 @@ describe('Client Fallback', () => {
239
245
test ( 'should try all nodes and fail if all nodes fail' , async ( ) => {
240
246
const numNodes = 3
241
247
const handlers = [
242
- mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
248
+ mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
243
249
mockJWT ( TEST_AUTH ) ,
244
250
...mockNodesHandlers ( numNodes , TEST_ORIGIN_DOMAIN )
245
251
]
246
252
247
253
const server = getMockServer ( handlers )
248
254
server . listen ( MSW_SERVER_OPTS )
249
- const saturn = new Saturn ( { clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
255
+ const saturn = new Saturn ( { ... options } )
250
256
251
257
const fetchContentMock = mock . fn ( async function * ( cidPath , opts ) { throw new Error ( 'Fetch error' ) } ) // eslint-disable-line
252
258
saturn . fetchContent = fetchContentMock
@@ -270,14 +276,14 @@ describe('Client Fallback', () => {
270
276
test ( 'Should abort fallback on 410s' , async ( ) => {
271
277
const numNodes = 3
272
278
const handlers = [
273
- mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
279
+ mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
274
280
mockJWT ( TEST_AUTH ) ,
275
281
...mockNodesHandlers ( numNodes , TEST_ORIGIN_DOMAIN , 3 , HTTP_STATUS_GONE )
276
282
]
277
283
278
284
const server = getMockServer ( handlers )
279
285
server . listen ( MSW_SERVER_OPTS )
280
- const saturn = new Saturn ( { clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
286
+ const saturn = new Saturn ( { ... options } )
281
287
await saturn . loadNodesPromise
282
288
283
289
let error
@@ -299,14 +305,14 @@ describe('Client Fallback', () => {
299
305
test ( 'Should abort fallback on specific errors' , async ( ) => {
300
306
const numNodes = 3
301
307
const handlers = [
302
- mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
308
+ mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
303
309
mockJWT ( TEST_AUTH ) ,
304
310
...mockNodesHandlers ( numNodes , TEST_ORIGIN_DOMAIN , 3 , HTTP_STATUS_GONE )
305
311
]
306
312
307
313
const server = getMockServer ( handlers )
308
314
server . listen ( MSW_SERVER_OPTS )
309
- const saturn = new Saturn ( { clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
315
+ const saturn = new Saturn ( { ... options } )
310
316
await saturn . loadNodesPromise
311
317
312
318
let callCount = 0
@@ -334,14 +340,14 @@ describe('Client Fallback', () => {
334
340
test ( 'Handles fallback with chunk overlap correctly' , async ( ) => {
335
341
const numNodes = 3
336
342
const handlers = [
337
- mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
343
+ mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
338
344
mockJWT ( TEST_AUTH ) ,
339
345
...mockNodesHandlers ( numNodes , TEST_ORIGIN_DOMAIN )
340
346
]
341
347
342
348
const server = getMockServer ( handlers )
343
349
server . listen ( MSW_SERVER_OPTS )
344
- const saturn = new Saturn ( { clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
350
+ const saturn = new Saturn ( { ... options } )
345
351
346
352
let callCount = 0
347
353
const fetchContentMock = mock . fn ( async function * ( cidPath , opts ) {
@@ -373,14 +379,14 @@ describe('Client Fallback', () => {
373
379
test ( 'should handle byte chunk overlaps correctly' , async ( ) => {
374
380
const numNodes = 3
375
381
const handlers = [
376
- mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , 'saturn.ms' ) ,
382
+ mockOrchHandler ( numNodes , TEST_DEFAULT_ORCH , TEST_ORIGIN_DOMAIN ) ,
377
383
mockJWT ( TEST_AUTH ) ,
378
384
...mockNodesHandlers ( numNodes , TEST_ORIGIN_DOMAIN )
379
385
]
380
386
381
387
const server = getMockServer ( handlers )
382
388
server . listen ( MSW_SERVER_OPTS )
383
- const saturn = new Saturn ( { clientKey : CLIENT_KEY , clientId : 'test' , experimental } )
389
+ const saturn = new Saturn ( { ... options } )
384
390
385
391
let callCount = 0
386
392
let fetchContentMock = mock . fn ( async function * ( cidPath , opts ) {
0 commit comments