@@ -4,7 +4,11 @@ import test from 'ava'
4
4
import { getTestServer } from 'fixtures/seam/connect/api.js'
5
5
import jwt from 'jsonwebtoken'
6
6
7
- import { SeamHttp , SeamHttpInvalidOptionsError } from '@seamapi/http/connect'
7
+ import {
8
+ SeamHttp ,
9
+ SeamHttpInvalidOptionsError ,
10
+ SeamHttpMultiWorkspace ,
11
+ } from '@seamapi/http/connect'
8
12
9
13
/*
10
14
* Tests in this file must run serially to ensure a clean environment for each test.
@@ -273,3 +277,93 @@ test.serial(
273
277
t . is ( device . device_id , seed . august_device_1 )
274
278
} ,
275
279
)
280
+
281
+ test . serial (
282
+ 'SeamHttp: constructor uses SEAM_PERSONAL_ACCESS_TOKEN and SEAM_WORKSPACE_ID environment variables' ,
283
+ async ( t ) => {
284
+ const { seed, endpoint } = await getTestServer ( t )
285
+ env [ 'SEAM_PERSONAL_ACCESS_TOKEN' ] = seed . seam_at1_token
286
+ env [ 'SEAM_WORKSPACE_ID' ] = seed . seed_workspace_1
287
+ const seam = new SeamHttp ( { endpoint } )
288
+ const device = await seam . devices . get ( {
289
+ device_id : seed . august_device_1 ,
290
+ } )
291
+ t . is ( device . workspace_id , seed . seed_workspace_1 )
292
+ t . is ( device . device_id , seed . august_device_1 )
293
+ } ,
294
+ )
295
+
296
+ test . serial (
297
+ 'SeamHttp: throws error when both SEAM_API_KEY and SEAM_PERSONAL_ACCESS_TOKEN are defined' ,
298
+ ( t ) => {
299
+ env . SEAM_API_KEY = 'some-api-key'
300
+ env [ 'SEAM_PERSONAL_ACCESS_TOKEN' ] = 'some-access-token'
301
+ env [ 'SEAM_WORKSPACE_ID' ] = 'some-workspace-id'
302
+ t . throws ( ( ) => new SeamHttp ( ) , {
303
+ instanceOf : SeamHttpInvalidOptionsError ,
304
+ message :
305
+ / B o t h S E A M _ A P I _ K E Y a n d S E A M _ P E R S O N A L _ A C C E S S _ T O K E N e n v i r o n m e n t v a r i a b l e s a r e d e f i n e d / ,
306
+ } )
307
+ } ,
308
+ )
309
+
310
+ test . serial (
311
+ 'SeamHttp: personalAccessToken option overrides environment variables' ,
312
+ async ( t ) => {
313
+ const { seed, endpoint } = await getTestServer ( t )
314
+ env [ 'SEAM_PERSONAL_ACCESS_TOKEN' ] = 'some-invalid-token'
315
+ env [ 'SEAM_WORKSPACE_ID' ] = seed . seed_workspace_1
316
+ const seam = new SeamHttp ( {
317
+ personalAccessToken : seed . seam_at1_token ,
318
+ endpoint,
319
+ } )
320
+ const device = await seam . devices . get ( {
321
+ device_id : seed . august_device_1 ,
322
+ } )
323
+ t . is ( device . workspace_id , seed . seed_workspace_1 )
324
+ t . is ( device . device_id , seed . august_device_1 )
325
+ } ,
326
+ )
327
+
328
+ test . serial (
329
+ 'SeamHttp: workspaceId option overrides environment variables' ,
330
+ async ( t ) => {
331
+ const { seed, endpoint } = await getTestServer ( t )
332
+ env [ 'SEAM_PERSONAL_ACCESS_TOKEN' ] = seed . seam_at1_token
333
+ env [ 'SEAM_WORKSPACE_ID' ] = 'some-invalid-workspace'
334
+ const seam = new SeamHttp ( {
335
+ workspaceId : seed . seed_workspace_1 ,
336
+ endpoint,
337
+ } )
338
+ const device = await seam . devices . get ( {
339
+ device_id : seed . august_device_1 ,
340
+ } )
341
+ t . is ( device . workspace_id , seed . seed_workspace_1 )
342
+ t . is ( device . device_id , seed . august_device_1 )
343
+ } ,
344
+ )
345
+
346
+ test . serial (
347
+ 'SeamHttpMultiWorkspace: constructor uses SEAM_PERSONAL_ACCESS_TOKEN environment variable' ,
348
+ async ( t ) => {
349
+ const { seed, endpoint } = await getTestServer ( t )
350
+ env [ 'SEAM_PERSONAL_ACCESS_TOKEN' ] = seed . seam_at1_token
351
+ const multiWorkspace = new SeamHttpMultiWorkspace ( { endpoint } )
352
+ const workspaces = await multiWorkspace . workspaces . list ( )
353
+ t . true ( workspaces . length > 0 )
354
+ } ,
355
+ )
356
+
357
+ test . serial (
358
+ 'SeamHttpMultiWorkspace: personalAccessToken option overrides environment variables' ,
359
+ async ( t ) => {
360
+ const { seed, endpoint } = await getTestServer ( t )
361
+ env [ 'SEAM_PERSONAL_ACCESS_TOKEN' ] = 'some-invalid-token'
362
+ const multiWorkspace = new SeamHttpMultiWorkspace ( {
363
+ personalAccessToken : seed . seam_at1_token ,
364
+ endpoint,
365
+ } )
366
+ const workspaces = await multiWorkspace . workspaces . list ( )
367
+ t . true ( workspaces . length > 0 )
368
+ } ,
369
+ )
0 commit comments