@shakenbake/linear 0.0.1

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/adapter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,441 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const core_1 = require("@shakenbake/core");
5
+ const adapter_js_1 = require("../adapter.js");
6
+ const types_js_1 = require("../types.js");
7
+ // ---- Helpers ----
8
+ function makeConfig(overrides) {
9
+ return {
10
+ apiKey: 'lin_api_test_key',
11
+ teamId: 'team-123',
12
+ ...overrides,
13
+ };
14
+ }
15
+ function makeReport(overrides) {
16
+ return {
17
+ id: 'report-001',
18
+ timestamp: '2026-02-20T12:00:00.000Z',
19
+ title: 'Button does not work',
20
+ description: 'Clicking the submit button has no effect.',
21
+ severity: 'high',
22
+ category: 'bug',
23
+ screenshot: {
24
+ annotated: 'data:image/png;base64,aW1hZ2VkYXRh',
25
+ original: 'data:image/png;base64,b3JpZ2luYWw=',
26
+ dimensions: { width: 1080, height: 1920 },
27
+ },
28
+ context: {
29
+ platform: { os: 'iOS', osVersion: '17.0' },
30
+ device: { manufacturer: 'Apple', model: 'iPhone 15' },
31
+ screen: { width: 1080, height: 1920, scale: 3 },
32
+ network: { type: 'wifi', effectiveType: '4g' },
33
+ battery: { level: 85, state: 'unplugged' },
34
+ locale: { languageCode: 'en', regionCode: 'US', timezone: 'America/New_York' },
35
+ app: { version: '1.2.3', buildNumber: '42' },
36
+ accessibility: {},
37
+ performance: {},
38
+ navigation: { currentRoute: '/home' },
39
+ console: {
40
+ recentErrors: [
41
+ {
42
+ message: 'TypeError: Cannot read property "submit"',
43
+ stack: 'at handleClick (app.js:42)',
44
+ timestamp: '2026-02-20T11:59:55.000Z',
45
+ },
46
+ ],
47
+ },
48
+ },
49
+ ...overrides,
50
+ };
51
+ }
52
+ /** Create a successful GraphQL JSON response. */
53
+ function graphqlResponse(data) {
54
+ return new Response(JSON.stringify({ data }), {
55
+ status: 200,
56
+ headers: { 'Content-Type': 'application/json' },
57
+ });
58
+ }
59
+ /** Create a successful PUT response for file upload. */
60
+ function putResponse() {
61
+ return new Response(null, { status: 200 });
62
+ }
63
+ /** Standard file upload response data. */
64
+ function fileUploadData(index) {
65
+ return {
66
+ fileUpload: {
67
+ success: true,
68
+ uploadFile: {
69
+ uploadUrl: `https://uploads.linear.app/upload-${String(index)}`,
70
+ assetUrl: `https://assets.linear.app/asset-${String(index)}`,
71
+ headers: [],
72
+ },
73
+ },
74
+ };
75
+ }
76
+ /** Standard issue create response data. */
77
+ function issueCreateData() {
78
+ return {
79
+ issueCreate: {
80
+ success: true,
81
+ issue: {
82
+ id: 'issue-abc',
83
+ identifier: 'ENG-123',
84
+ title: 'Button does not work',
85
+ url: 'https://linear.app/team/issue/ENG-123',
86
+ },
87
+ },
88
+ };
89
+ }
90
+ /** Extract the JSON body from a fetch mock call. */
91
+ function getCallBody(
92
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
+ calls, index) {
94
+ const call = calls[index];
95
+ if (!call)
96
+ throw new Error(`No fetch call at index ${String(index)}`);
97
+ return JSON.parse(call[1].body);
98
+ }
99
+ // ---- Tests ----
100
+ (0, vitest_1.describe)('LinearAdapter', () => {
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ let fetchMock;
103
+ (0, vitest_1.beforeEach)(() => {
104
+ fetchMock = vitest_1.vi.spyOn(globalThis, 'fetch');
105
+ });
106
+ (0, vitest_1.afterEach)(() => {
107
+ vitest_1.vi.restoreAllMocks();
108
+ });
109
+ // == Constructor & Properties ==
110
+ (0, vitest_1.describe)('constructor', () => {
111
+ (0, vitest_1.it)('stores config correctly', () => {
112
+ const config = makeConfig({ projectId: 'proj-1' });
113
+ const adapter = new adapter_js_1.LinearAdapter(config);
114
+ (0, vitest_1.expect)(adapter.name).toBe('linear');
115
+ });
116
+ (0, vitest_1.it)('name property returns "linear"', () => {
117
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
118
+ (0, vitest_1.expect)(adapter.name).toBe('linear');
119
+ });
120
+ (0, vitest_1.it)('uses default API URL when not specified', () => {
121
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
122
+ fetchMock.mockResolvedValueOnce(graphqlResponse({ viewer: { id: 'user-1' } }));
123
+ void adapter.testConnection();
124
+ (0, vitest_1.expect)(fetchMock).toHaveBeenCalledWith(types_js_1.DEFAULT_API_URL, vitest_1.expect.anything());
125
+ });
126
+ (0, vitest_1.it)('uses custom API URL when specified', () => {
127
+ const customUrl = 'https://custom.linear.dev/graphql';
128
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig({ apiUrl: customUrl }));
129
+ fetchMock.mockResolvedValueOnce(graphqlResponse({ viewer: { id: 'user-1' } }));
130
+ void adapter.testConnection();
131
+ (0, vitest_1.expect)(fetchMock).toHaveBeenCalledWith(customUrl, vitest_1.expect.anything());
132
+ });
133
+ });
134
+ // == testConnection ==
135
+ (0, vitest_1.describe)('testConnection', () => {
136
+ (0, vitest_1.it)('returns true on successful viewer query', async () => {
137
+ fetchMock.mockResolvedValueOnce(graphqlResponse({ viewer: { id: 'user-1' } }));
138
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
139
+ const result = await adapter.testConnection();
140
+ (0, vitest_1.expect)(result).toBe(true);
141
+ });
142
+ (0, vitest_1.it)('returns false on auth failure (401)', async () => {
143
+ fetchMock.mockResolvedValueOnce(new Response('Unauthorized', { status: 401 }));
144
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
145
+ const result = await adapter.testConnection();
146
+ (0, vitest_1.expect)(result).toBe(false);
147
+ });
148
+ (0, vitest_1.it)('returns false on auth failure (403)', async () => {
149
+ fetchMock.mockResolvedValueOnce(new Response('Forbidden', { status: 403 }));
150
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
151
+ const result = await adapter.testConnection();
152
+ (0, vitest_1.expect)(result).toBe(false);
153
+ });
154
+ (0, vitest_1.it)('throws ShakeNbakeError with NETWORK_ERROR on fetch failure', async () => {
155
+ fetchMock.mockRejectedValueOnce(new TypeError('fetch failed'));
156
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
157
+ try {
158
+ await adapter.testConnection();
159
+ vitest_1.expect.unreachable('Should have thrown');
160
+ }
161
+ catch (e) {
162
+ (0, vitest_1.expect)(e).toBeInstanceOf(core_1.ShakeNbakeError);
163
+ (0, vitest_1.expect)(e.code).toBe('NETWORK_ERROR');
164
+ (0, vitest_1.expect)(e.retryable).toBe(true);
165
+ (0, vitest_1.expect)(e.originalError).toBeInstanceOf(TypeError);
166
+ }
167
+ });
168
+ (0, vitest_1.it)('sends Authorization header without Bearer prefix', async () => {
169
+ fetchMock.mockResolvedValueOnce(graphqlResponse({ viewer: { id: 'user-1' } }));
170
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig({ apiKey: 'lin_api_mykey' }));
171
+ await adapter.testConnection();
172
+ (0, vitest_1.expect)(fetchMock).toHaveBeenCalledWith(vitest_1.expect.anything(), vitest_1.expect.objectContaining({
173
+ headers: vitest_1.expect.objectContaining({
174
+ Authorization: 'lin_api_mykey',
175
+ }),
176
+ }));
177
+ });
178
+ (0, vitest_1.it)('sends Content-Type application/json header', async () => {
179
+ fetchMock.mockResolvedValueOnce(graphqlResponse({ viewer: { id: 'user-1' } }));
180
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
181
+ await adapter.testConnection();
182
+ (0, vitest_1.expect)(fetchMock).toHaveBeenCalledWith(vitest_1.expect.anything(), vitest_1.expect.objectContaining({
183
+ headers: vitest_1.expect.objectContaining({
184
+ 'Content-Type': 'application/json',
185
+ }),
186
+ }));
187
+ });
188
+ });
189
+ // == createIssue ==
190
+ (0, vitest_1.describe)('createIssue', () => {
191
+ function mockSuccessfulIssueCreation() {
192
+ // Upload annotated screenshot: fileUpload + PUT
193
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(1)));
194
+ fetchMock.mockResolvedValueOnce(putResponse());
195
+ // Upload original screenshot: fileUpload + PUT
196
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(2)));
197
+ fetchMock.mockResolvedValueOnce(putResponse());
198
+ // issueCreate mutation
199
+ fetchMock.mockResolvedValueOnce(graphqlResponse(issueCreateData()));
200
+ }
201
+ (0, vitest_1.it)('returns SubmitResult on success', async () => {
202
+ mockSuccessfulIssueCreation();
203
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
204
+ const result = await adapter.createIssue(makeReport());
205
+ (0, vitest_1.expect)(result).toEqual({
206
+ url: 'https://linear.app/team/issue/ENG-123',
207
+ id: 'issue-abc',
208
+ success: true,
209
+ });
210
+ });
211
+ (0, vitest_1.it)('sends correct GraphQL mutation with teamId', async () => {
212
+ mockSuccessfulIssueCreation();
213
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig({ teamId: 'my-team' }));
214
+ await adapter.createIssue(makeReport());
215
+ const body = getCallBody(fetchMock.mock.calls, 4);
216
+ (0, vitest_1.expect)(body.variables.input.teamId).toBe('my-team');
217
+ });
218
+ (0, vitest_1.it)('builds markdown description with screenshot URLs', async () => {
219
+ mockSuccessfulIssueCreation();
220
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
221
+ await adapter.createIssue(makeReport());
222
+ const body = getCallBody(fetchMock.mock.calls, 4);
223
+ const desc = body.variables.input.description;
224
+ (0, vitest_1.expect)(desc).toContain('## Bug Report');
225
+ (0, vitest_1.expect)(desc).toContain('Clicking the submit button has no effect.');
226
+ (0, vitest_1.expect)(desc).toContain('![Annotated screenshot]');
227
+ (0, vitest_1.expect)(desc).toContain('https://assets.linear.app/asset-1');
228
+ (0, vitest_1.expect)(desc).toContain('![Original screenshot]');
229
+ (0, vitest_1.expect)(desc).toContain('https://assets.linear.app/asset-2');
230
+ });
231
+ (0, vitest_1.it)('includes device context in markdown', async () => {
232
+ mockSuccessfulIssueCreation();
233
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
234
+ await adapter.createIssue(makeReport());
235
+ const body = getCallBody(fetchMock.mock.calls, 4);
236
+ const desc = body.variables.input.description;
237
+ (0, vitest_1.expect)(desc).toContain('iOS 17.0');
238
+ (0, vitest_1.expect)(desc).toContain('Apple iPhone 15');
239
+ (0, vitest_1.expect)(desc).toContain('1080x1920 @3x');
240
+ (0, vitest_1.expect)(desc).toContain('/home');
241
+ });
242
+ (0, vitest_1.it)('includes console errors in markdown', async () => {
243
+ mockSuccessfulIssueCreation();
244
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
245
+ await adapter.createIssue(makeReport());
246
+ const body = getCallBody(fetchMock.mock.calls, 4);
247
+ const desc = body.variables.input.description;
248
+ (0, vitest_1.expect)(desc).toContain('Console Errors');
249
+ (0, vitest_1.expect)(desc).toContain('TypeError: Cannot read property "submit"');
250
+ });
251
+ (0, vitest_1.it)('maps severity to priority via default mapping', async () => {
252
+ mockSuccessfulIssueCreation();
253
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
254
+ await adapter.createIssue(makeReport({ severity: 'critical' }));
255
+ const body = getCallBody(fetchMock.mock.calls, 4);
256
+ (0, vitest_1.expect)(body.variables.input.priority).toBe(types_js_1.DEFAULT_SEVERITY_MAPPING.critical);
257
+ });
258
+ (0, vitest_1.it)('uses custom severity mapping when provided', async () => {
259
+ mockSuccessfulIssueCreation();
260
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig({
261
+ severityMapping: { critical: 0, high: 1, medium: 2, low: 3 },
262
+ }));
263
+ await adapter.createIssue(makeReport({ severity: 'high' }));
264
+ const body = getCallBody(fetchMock.mock.calls, 4);
265
+ (0, vitest_1.expect)(body.variables.input.priority).toBe(1);
266
+ });
267
+ (0, vitest_1.it)('includes projectId when configured', async () => {
268
+ mockSuccessfulIssueCreation();
269
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig({ projectId: 'proj-456' }));
270
+ await adapter.createIssue(makeReport());
271
+ const body = getCallBody(fetchMock.mock.calls, 4);
272
+ (0, vitest_1.expect)(body.variables.input.projectId).toBe('proj-456');
273
+ });
274
+ (0, vitest_1.it)('includes assigneeId when configured', async () => {
275
+ mockSuccessfulIssueCreation();
276
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig({ defaultAssigneeId: 'user-789' }));
277
+ await adapter.createIssue(makeReport());
278
+ const body = getCallBody(fetchMock.mock.calls, 4);
279
+ (0, vitest_1.expect)(body.variables.input.assigneeId).toBe('user-789');
280
+ });
281
+ (0, vitest_1.it)('merges default and category label IDs', async () => {
282
+ mockSuccessfulIssueCreation();
283
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig({
284
+ defaultLabelIds: ['label-default'],
285
+ categoryLabels: { bug: 'label-bug', ui: 'label-ui' },
286
+ }));
287
+ await adapter.createIssue(makeReport({ category: 'bug' }));
288
+ const body = getCallBody(fetchMock.mock.calls, 4);
289
+ (0, vitest_1.expect)(body.variables.input.labelIds).toEqual([
290
+ 'label-default',
291
+ 'label-bug',
292
+ ]);
293
+ });
294
+ (0, vitest_1.it)('throws ShakeNbakeError on auth failure (401)', async () => {
295
+ // All uploads fail with 401
296
+ fetchMock.mockResolvedValue(new Response('Unauthorized', { status: 401 }));
297
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
298
+ try {
299
+ await adapter.createIssue(makeReport());
300
+ vitest_1.expect.unreachable('Should have thrown');
301
+ }
302
+ catch (e) {
303
+ (0, vitest_1.expect)(e).toBeInstanceOf(core_1.ShakeNbakeError);
304
+ (0, vitest_1.expect)(e.code).toBe('AUTH_FAILED');
305
+ }
306
+ });
307
+ (0, vitest_1.it)('throws ShakeNbakeError on network error', async () => {
308
+ fetchMock.mockRejectedValue(new TypeError('Network request failed'));
309
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
310
+ try {
311
+ await adapter.createIssue(makeReport());
312
+ vitest_1.expect.unreachable('Should have thrown');
313
+ }
314
+ catch (e) {
315
+ (0, vitest_1.expect)(e).toBeInstanceOf(core_1.ShakeNbakeError);
316
+ (0, vitest_1.expect)(['NETWORK_ERROR', 'UPLOAD_FAILED']).toContain(e.code);
317
+ }
318
+ });
319
+ (0, vitest_1.it)('gracefully handles screenshot upload failure (falls back)', async () => {
320
+ // Screenshot uploads fail (network error)
321
+ fetchMock.mockRejectedValueOnce(new TypeError('upload failed'));
322
+ fetchMock.mockRejectedValueOnce(new TypeError('upload failed'));
323
+ // issueCreate succeeds
324
+ fetchMock.mockResolvedValueOnce(graphqlResponse(issueCreateData()));
325
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
326
+ const result = await adapter.createIssue(makeReport());
327
+ (0, vitest_1.expect)(result.success).toBe(true);
328
+ const body = getCallBody(fetchMock.mock.calls, 2);
329
+ (0, vitest_1.expect)(body.variables.input.description).toContain('## Bug Report');
330
+ });
331
+ (0, vitest_1.it)('handles audio upload and includes in description', async () => {
332
+ // Annotated screenshot: fileUpload + PUT
333
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(1)));
334
+ fetchMock.mockResolvedValueOnce(putResponse());
335
+ // Original screenshot: fileUpload + PUT
336
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(2)));
337
+ fetchMock.mockResolvedValueOnce(putResponse());
338
+ // Audio: fileUpload + PUT
339
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(3)));
340
+ fetchMock.mockResolvedValueOnce(putResponse());
341
+ // issueCreate
342
+ fetchMock.mockResolvedValueOnce(graphqlResponse(issueCreateData()));
343
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
344
+ const report = makeReport({
345
+ audio: {
346
+ data: 'YXVkaW9kYXRh',
347
+ durationMs: 5000,
348
+ mimeType: 'audio/webm',
349
+ transcript: 'The submit button is broken',
350
+ },
351
+ });
352
+ const result = await adapter.createIssue(report);
353
+ (0, vitest_1.expect)(result.success).toBe(true);
354
+ const body = getCallBody(fetchMock.mock.calls, 6);
355
+ const desc = body.variables.input.description;
356
+ (0, vitest_1.expect)(desc).toContain('Audio Transcript');
357
+ (0, vitest_1.expect)(desc).toContain('The submit button is broken');
358
+ (0, vitest_1.expect)(desc).toContain('https://assets.linear.app/asset-3');
359
+ });
360
+ });
361
+ // == uploadImage ==
362
+ (0, vitest_1.describe)('uploadImage', () => {
363
+ (0, vitest_1.it)('returns asset URL on successful upload', async () => {
364
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(1)));
365
+ fetchMock.mockResolvedValueOnce(putResponse());
366
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
367
+ const url = await adapter.uploadImage(Buffer.from('image-data'), 'test.png');
368
+ (0, vitest_1.expect)(url).toBe('https://assets.linear.app/asset-1');
369
+ });
370
+ (0, vitest_1.it)('sends correct content type for PNG files', async () => {
371
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(1)));
372
+ fetchMock.mockResolvedValueOnce(putResponse());
373
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
374
+ await adapter.uploadImage(Buffer.from('data'), 'screenshot.png');
375
+ const body = getCallBody(fetchMock.mock.calls, 0);
376
+ (0, vitest_1.expect)(body.variables.contentType).toBe('image/png');
377
+ });
378
+ (0, vitest_1.it)('sends correct content type for JPEG files', async () => {
379
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(1)));
380
+ fetchMock.mockResolvedValueOnce(putResponse());
381
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
382
+ await adapter.uploadImage(Buffer.from('data'), 'screenshot.jpg');
383
+ const body = getCallBody(fetchMock.mock.calls, 0);
384
+ (0, vitest_1.expect)(body.variables.contentType).toBe('image/jpeg');
385
+ });
386
+ (0, vitest_1.it)('throws ShakeNbakeError with UPLOAD_FAILED on PUT failure', async () => {
387
+ fetchMock.mockResolvedValueOnce(graphqlResponse(fileUploadData(1)));
388
+ fetchMock.mockResolvedValueOnce(new Response('Server Error', { status: 500 }));
389
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
390
+ try {
391
+ await adapter.uploadImage(Buffer.from('data'), 'test.png');
392
+ vitest_1.expect.unreachable('Should have thrown');
393
+ }
394
+ catch (e) {
395
+ (0, vitest_1.expect)(e).toBeInstanceOf(core_1.ShakeNbakeError);
396
+ (0, vitest_1.expect)(e.code).toBe('UPLOAD_FAILED');
397
+ }
398
+ });
399
+ (0, vitest_1.it)('throws ShakeNbakeError on fileUpload mutation auth failure', async () => {
400
+ fetchMock.mockResolvedValueOnce(new Response('Unauthorized', { status: 401 }));
401
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
402
+ try {
403
+ await adapter.uploadImage(Buffer.from('data'), 'test.png');
404
+ vitest_1.expect.unreachable('Should have thrown');
405
+ }
406
+ catch (e) {
407
+ (0, vitest_1.expect)(e).toBeInstanceOf(core_1.ShakeNbakeError);
408
+ (0, vitest_1.expect)(e.code).toBe('AUTH_FAILED');
409
+ }
410
+ });
411
+ });
412
+ // == linearFetch headers ==
413
+ (0, vitest_1.describe)('linearFetch (via adapter)', () => {
414
+ (0, vitest_1.it)('does not use Bearer prefix in Authorization header', async () => {
415
+ fetchMock.mockResolvedValueOnce(graphqlResponse({ viewer: { id: 'user-1' } }));
416
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig({ apiKey: 'lin_api_secret' }));
417
+ await adapter.testConnection();
418
+ const call = fetchMock.mock.calls[0];
419
+ const headers = call[1].headers;
420
+ (0, vitest_1.expect)(headers['Authorization']).toBe('lin_api_secret');
421
+ (0, vitest_1.expect)(headers['Authorization']).not.toContain('Bearer');
422
+ });
423
+ });
424
+ // == Rate limit handling ==
425
+ (0, vitest_1.describe)('rate limiting', () => {
426
+ (0, vitest_1.it)('throws ShakeNbakeError with RATE_LIMITED on 429', async () => {
427
+ fetchMock.mockResolvedValueOnce(new Response('Too Many Requests', { status: 429 }));
428
+ const adapter = new adapter_js_1.LinearAdapter(makeConfig());
429
+ try {
430
+ await adapter.testConnection();
431
+ vitest_1.expect.unreachable('Should have thrown');
432
+ }
433
+ catch (e) {
434
+ (0, vitest_1.expect)(e).toBeInstanceOf(core_1.ShakeNbakeError);
435
+ (0, vitest_1.expect)(e.code).toBe('RATE_LIMITED');
436
+ (0, vitest_1.expect)(e.retryable).toBe(true);
437
+ }
438
+ });
439
+ });
440
+ });
441
+ //# sourceMappingURL=adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.test.js","sourceRoot":"","sources":["../../src/__tests__/adapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=graphql.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/graphql.test.ts"],"names":[],"mappings":""}