@quenty/nevermore-cli 4.43.4 → 4.45.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.
- package/CHANGELOG.md +10 -0
- package/build-scripts/{combine-test-places.luau → combine-test-places.lua} +3 -3
- package/build-scripts/{transform-inject-deploy-metadata.luau → transform-inject-deploy-metadata.lua} +3 -3
- package/dist/commands/batch-command/batch-deploy-command.js +4 -4
- package/dist/commands/batch-command/batch-deploy-command.js.map +1 -1
- package/dist/commands/batch-command/batch-test-command.d.ts.map +1 -1
- package/dist/commands/batch-command/batch-test-command.js +76 -19
- package/dist/commands/batch-command/batch-test-command.js.map +1 -1
- package/dist/commands/deploy-command/deploy-init-utils.d.ts.map +1 -1
- package/dist/commands/deploy-command/deploy-init-utils.js +7 -1
- package/dist/commands/deploy-command/deploy-init-utils.js.map +1 -1
- package/dist/commands/deploy-command/deploy-init.d.ts.map +1 -1
- package/dist/commands/deploy-command/deploy-init.js +24 -7
- package/dist/commands/deploy-command/deploy-init.js.map +1 -1
- package/dist/commands/deploy-command/index.js +1 -1
- package/dist/commands/deploy-command/index.js.map +1 -1
- package/dist/utils/deploy/deploy-github-columns.d.ts +12 -2
- package/dist/utils/deploy/deploy-github-columns.d.ts.map +1 -1
- package/dist/utils/deploy/deploy-github-columns.js +11 -4
- package/dist/utils/deploy/deploy-github-columns.js.map +1 -1
- package/dist/utils/deploy/deploy-metadata.js +1 -1
- package/dist/utils/deploy/deploy-metadata.js.map +1 -1
- package/dist/utils/job-context/base-job-context.d.ts +2 -2
- package/dist/utils/job-context/base-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/base-job-context.js +1 -1
- package/dist/utils/job-context/base-job-context.js.map +1 -1
- package/dist/utils/job-context/batch-script-job-context.d.ts +37 -2
- package/dist/utils/job-context/batch-script-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/batch-script-job-context.js +59 -22
- package/dist/utils/job-context/batch-script-job-context.js.map +1 -1
- package/dist/utils/job-context/cloud-job-context.d.ts +2 -2
- package/dist/utils/job-context/cloud-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/cloud-job-context.js +10 -5
- package/dist/utils/job-context/cloud-job-context.js.map +1 -1
- package/dist/utils/job-context/cloud-job-context.test.d.ts +7 -0
- package/dist/utils/job-context/cloud-job-context.test.d.ts.map +1 -0
- package/dist/utils/job-context/cloud-job-context.test.js +91 -0
- package/dist/utils/job-context/cloud-job-context.test.js.map +1 -0
- package/dist/utils/job-context/job-context.d.ts +70 -2
- package/dist/utils/job-context/job-context.d.ts.map +1 -1
- package/dist/utils/job-context/local-job-context.d.ts +2 -2
- package/dist/utils/job-context/local-job-context.d.ts.map +1 -1
- package/dist/utils/job-context/local-job-context.js +4 -2
- package/dist/utils/job-context/local-job-context.js.map +1 -1
- package/dist/utils/job-context/local-job-context.test.d.ts +7 -0
- package/dist/utils/job-context/local-job-context.test.d.ts.map +1 -0
- package/dist/utils/job-context/local-job-context.test.js +68 -0
- package/dist/utils/job-context/local-job-context.test.js.map +1 -0
- package/dist/utils/open-cloud/open-cloud-client.d.ts +50 -7
- package/dist/utils/open-cloud/open-cloud-client.d.ts.map +1 -1
- package/dist/utils/open-cloud/open-cloud-client.js +49 -13
- package/dist/utils/open-cloud/open-cloud-client.js.map +1 -1
- package/dist/utils/open-cloud/open-cloud-client.test.js +125 -1
- package/dist/utils/open-cloud/open-cloud-client.test.js.map +1 -1
- package/dist/utils/open-cloud/open-cloud-logs.characterization.test.d.ts +22 -0
- package/dist/utils/open-cloud/open-cloud-logs.characterization.test.d.ts.map +1 -0
- package/dist/utils/open-cloud/open-cloud-logs.characterization.test.js +202 -0
- package/dist/utils/open-cloud/open-cloud-logs.characterization.test.js.map +1 -0
- package/dist/utils/package-manager-utils.d.ts.map +1 -1
- package/dist/utils/package-manager-utils.js +32 -1
- package/dist/utils/package-manager-utils.js.map +1 -1
- package/dist/utils/package-manager-utils.test.js +25 -0
- package/dist/utils/package-manager-utils.test.js.map +1 -1
- package/dist/utils/testing/batch-run.e2e.test.d.ts +17 -0
- package/dist/utils/testing/batch-run.e2e.test.d.ts.map +1 -0
- package/dist/utils/testing/batch-run.e2e.test.js +343 -0
- package/dist/utils/testing/batch-run.e2e.test.js.map +1 -0
- package/dist/utils/testing/batch-test-runner-template.test.d.ts +11 -0
- package/dist/utils/testing/batch-test-runner-template.test.d.ts.map +1 -0
- package/dist/utils/testing/batch-test-runner-template.test.js +38 -0
- package/dist/utils/testing/batch-test-runner-template.test.js.map +1 -0
- package/dist/utils/testing/log-fetch-stats.d.ts +40 -0
- package/dist/utils/testing/log-fetch-stats.d.ts.map +1 -0
- package/dist/utils/testing/log-fetch-stats.js +18 -0
- package/dist/utils/testing/log-fetch-stats.js.map +1 -0
- package/dist/utils/testing/log-fetch-stats.test.d.ts +2 -0
- package/dist/utils/testing/log-fetch-stats.test.d.ts.map +1 -0
- package/dist/utils/testing/log-fetch-stats.test.js +41 -0
- package/dist/utils/testing/log-fetch-stats.test.js.map +1 -0
- package/dist/utils/testing/parsers/batch-log-parser.d.ts +126 -1
- package/dist/utils/testing/parsers/batch-log-parser.d.ts.map +1 -1
- package/dist/utils/testing/parsers/batch-log-parser.js +440 -103
- package/dist/utils/testing/parsers/batch-log-parser.js.map +1 -1
- package/dist/utils/testing/parsers/batch-log-parser.test.js +494 -1
- package/dist/utils/testing/parsers/batch-log-parser.test.js.map +1 -1
- package/dist/utils/testing/parsers/batch-log-renderer.d.ts +79 -0
- package/dist/utils/testing/parsers/batch-log-renderer.d.ts.map +1 -0
- package/dist/utils/testing/parsers/batch-log-renderer.js +241 -0
- package/dist/utils/testing/parsers/batch-log-renderer.js.map +1 -0
- package/dist/utils/testing/parsers/batch-log-renderer.test.d.ts +2 -0
- package/dist/utils/testing/parsers/batch-log-renderer.test.d.ts.map +1 -0
- package/dist/utils/testing/parsers/batch-log-renderer.test.js +202 -0
- package/dist/utils/testing/parsers/batch-log-renderer.test.js.map +1 -0
- package/dist/utils/testing/runner/combined-project-generator.js +1 -1
- package/dist/utils/testing/runner/combined-project-generator.js.map +1 -1
- package/dist/utils/testing/runner/test-runner.d.ts +24 -0
- package/dist/utils/testing/runner/test-runner.d.ts.map +1 -1
- package/dist/utils/testing/runner/test-runner.js +166 -6
- package/dist/utils/testing/runner/test-runner.js.map +1 -1
- package/dist/utils/testing/runner/test-runner.test.js +228 -2
- package/dist/utils/testing/runner/test-runner.test.js.map +1 -1
- package/dist/utils/testing/structured-test-results.d.ts +77 -0
- package/dist/utils/testing/structured-test-results.d.ts.map +1 -0
- package/dist/utils/testing/structured-test-results.js +140 -0
- package/dist/utils/testing/structured-test-results.js.map +1 -0
- package/dist/utils/testing/structured-test-results.test.d.ts +7 -0
- package/dist/utils/testing/structured-test-results.test.d.ts.map +1 -0
- package/dist/utils/testing/structured-test-results.test.js +179 -0
- package/dist/utils/testing/structured-test-results.test.js.map +1 -0
- package/package.json +6 -6
- package/src/commands/batch-command/batch-deploy-command.ts +4 -4
- package/src/commands/batch-command/batch-test-command.ts +94 -19
- package/src/commands/deploy-command/deploy-init-utils.ts +7 -1
- package/src/commands/deploy-command/deploy-init.ts +41 -11
- package/src/commands/deploy-command/index.ts +1 -1
- package/src/utils/deploy/deploy-github-columns.ts +14 -4
- package/src/utils/deploy/deploy-metadata.ts +1 -1
- package/src/utils/job-context/base-job-context.ts +3 -2
- package/src/utils/job-context/batch-script-job-context.ts +98 -17
- package/src/utils/job-context/cloud-job-context.test.ts +112 -0
- package/src/utils/job-context/cloud-job-context.ts +12 -6
- package/src/utils/job-context/job-context.ts +71 -2
- package/src/utils/job-context/local-job-context.test.ts +89 -0
- package/src/utils/job-context/local-job-context.ts +7 -3
- package/src/utils/open-cloud/open-cloud-client.test.ts +155 -1
- package/src/utils/open-cloud/open-cloud-client.ts +94 -18
- package/src/utils/open-cloud/open-cloud-logs.characterization.test.ts +277 -0
- package/src/utils/package-manager-utils.test.ts +27 -0
- package/src/utils/package-manager-utils.ts +34 -1
- package/src/utils/testing/batch-run.e2e.test.ts +425 -0
- package/src/utils/testing/batch-test-runner-template.test.ts +62 -0
- package/src/utils/testing/log-fetch-stats.test.ts +48 -0
- package/src/utils/testing/log-fetch-stats.ts +55 -0
- package/src/utils/testing/parsers/batch-log-parser.test.ts +660 -1
- package/src/utils/testing/parsers/batch-log-parser.ts +721 -116
- package/src/utils/testing/parsers/batch-log-renderer.test.ts +330 -0
- package/src/utils/testing/parsers/batch-log-renderer.ts +329 -0
- package/src/utils/testing/runner/combined-project-generator.ts +1 -1
- package/src/utils/testing/runner/test-runner.test.ts +332 -2
- package/src/utils/testing/runner/test-runner.ts +231 -9
- package/src/utils/testing/structured-test-results.test.ts +267 -0
- package/src/utils/testing/structured-test-results.ts +199 -0
- package/templates/batch-test-runner.lua +242 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/templates/batch-test-runner.luau +0 -137
- /package/build-scripts/{smoke-test-server.luau → smoke-test-server.lua} +0 -0
- /package/build-scripts/{transform-rojo-merge-place.luau → transform-rojo-merge-place.lua} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
2
|
import * as fs from 'fs/promises';
|
|
3
|
-
import { OpenCloudClient } from './open-cloud-client.js';
|
|
3
|
+
import { OpenCloudClient, getTaskReturnValues, } from './open-cloud-client.js';
|
|
4
4
|
vi.mock('@quenty/cli-output-helpers', () => ({
|
|
5
5
|
OutputHelper: {
|
|
6
6
|
verbose: vi.fn(),
|
|
@@ -253,4 +253,128 @@ describe('OpenCloudClient.resolveLatestPlaceVersionAsync', () => {
|
|
|
253
253
|
await expect(client.resolveLatestPlaceVersionAsync(1, 22, 'saved')).rejects.toThrowError(/unparseable version path/);
|
|
254
254
|
});
|
|
255
255
|
});
|
|
256
|
+
describe('getTaskReturnValues', () => {
|
|
257
|
+
function makeTask(overrides) {
|
|
258
|
+
return {
|
|
259
|
+
path: 'universes/1/places/2/versions/3/luau-execution-session-tasks/4',
|
|
260
|
+
createTime: '2026-01-01T00:00:00Z',
|
|
261
|
+
updateTime: '2026-01-01T00:01:00Z',
|
|
262
|
+
user: 'users/1',
|
|
263
|
+
state: 'COMPLETE',
|
|
264
|
+
script: 'return 1',
|
|
265
|
+
...overrides,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
it('returns the values natively typed, one entry per returned value', () => {
|
|
269
|
+
// Roblox serializes the return value itself, so a returned table arrives as
|
|
270
|
+
// real nested JSON — there is no JSON string to parse a second time.
|
|
271
|
+
const task = makeTask({
|
|
272
|
+
output: {
|
|
273
|
+
results: [{ slug: 'maid', counts: { passed: 1014 } }, 'str', 42, true],
|
|
274
|
+
},
|
|
275
|
+
});
|
|
276
|
+
expect(getTaskReturnValues(task)).toEqual([
|
|
277
|
+
{ slug: 'maid', counts: { passed: 1014 } },
|
|
278
|
+
'str',
|
|
279
|
+
42,
|
|
280
|
+
true,
|
|
281
|
+
]);
|
|
282
|
+
});
|
|
283
|
+
it('reports an empty result when the task returned nothing', () => {
|
|
284
|
+
expect(getTaskReturnValues(makeTask({ output: {} }))).toEqual([]);
|
|
285
|
+
});
|
|
286
|
+
it('reports undefined when a failed task carried no output at all', () => {
|
|
287
|
+
// An oversize return value fails the task with no output and no error
|
|
288
|
+
// message, so "nothing came back to read" has to stay distinguishable from
|
|
289
|
+
// "the script returned nothing" — only the former can fall back to logs.
|
|
290
|
+
const task = makeTask({ state: 'FAILED', output: undefined });
|
|
291
|
+
expect(getTaskReturnValues(task)).toBeUndefined();
|
|
292
|
+
});
|
|
293
|
+
});
|
|
294
|
+
describe('OpenCloudClient.getRawTaskLogsAsync', () => {
|
|
295
|
+
afterEach(() => {
|
|
296
|
+
vi.restoreAllMocks();
|
|
297
|
+
});
|
|
298
|
+
/**
|
|
299
|
+
* Page the logs endpoint the way the real one does: many messages inside each
|
|
300
|
+
* `luauExecutionSessionTaskLog`, and pagination over those entries rather than
|
|
301
|
+
* over messages.
|
|
302
|
+
*/
|
|
303
|
+
function makeLogsLimiter(pages, urls = []) {
|
|
304
|
+
return {
|
|
305
|
+
fetchAsync: vi.fn(async (url) => {
|
|
306
|
+
urls.push(String(url));
|
|
307
|
+
const page = pages[urls.length - 1] ?? [];
|
|
308
|
+
return new Response(JSON.stringify({
|
|
309
|
+
luauExecutionSessionTaskLogs: page.map((messages) => ({
|
|
310
|
+
structuredMessages: messages.map((message) => ({
|
|
311
|
+
message,
|
|
312
|
+
createTime: '2026-08-27T00:00:00.38Z',
|
|
313
|
+
messageType: 'OUTPUT',
|
|
314
|
+
})),
|
|
315
|
+
})),
|
|
316
|
+
...(urls.length < pages.length
|
|
317
|
+
? { nextPageToken: `token-${urls.length}` }
|
|
318
|
+
: {}),
|
|
319
|
+
}), { status: 200 });
|
|
320
|
+
}),
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
it('counts pages, entries and messages separately', async () => {
|
|
324
|
+
// Entries are not lines: the endpoint's page size applies to the log
|
|
325
|
+
// objects, each of which carries many messages. Conflating the two reads a
|
|
326
|
+
// 2-entry response as a 2-line run.
|
|
327
|
+
const client = new OpenCloudClient({
|
|
328
|
+
apiKey: 'test-key',
|
|
329
|
+
rateLimiter: makeLogsLimiter([[['a', 'b', 'c'], ['d']], [['e', 'f']]]),
|
|
330
|
+
});
|
|
331
|
+
const fetched = await client.getRawTaskLogsAsync('universes/1/tasks/2');
|
|
332
|
+
expect(fetched.text).toBe('a\nb\nc\nd\ne\nf');
|
|
333
|
+
expect(fetched.stats).toEqual({
|
|
334
|
+
requests: 2,
|
|
335
|
+
pages: 2,
|
|
336
|
+
entries: 3,
|
|
337
|
+
messages: 6,
|
|
338
|
+
chars: 11,
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
it('counts every attempt when empty logs were retried', async () => {
|
|
342
|
+
// The retry is invisible in the text it eventually returns, so a run whose
|
|
343
|
+
// logs only showed up on the third ask looks exactly like one that answered
|
|
344
|
+
// immediately. It is the difference between a slow API and a silent run.
|
|
345
|
+
vi.spyOn(global, 'setTimeout').mockImplementation((fn) => {
|
|
346
|
+
fn();
|
|
347
|
+
return 0;
|
|
348
|
+
});
|
|
349
|
+
// One unpaged response per attempt: two empty, then the logs. A limiter
|
|
350
|
+
// that pages would fold all three into a single attempt and prove nothing.
|
|
351
|
+
let attempt = 0;
|
|
352
|
+
const rateLimiter = {
|
|
353
|
+
fetchAsync: vi.fn(async () => {
|
|
354
|
+
attempt++;
|
|
355
|
+
return new Response(JSON.stringify({
|
|
356
|
+
luauExecutionSessionTaskLogs: attempt < 3
|
|
357
|
+
? []
|
|
358
|
+
: [
|
|
359
|
+
{
|
|
360
|
+
structuredMessages: [
|
|
361
|
+
{
|
|
362
|
+
message: 'late',
|
|
363
|
+
createTime: '2026-08-27T00:00:00.38Z',
|
|
364
|
+
messageType: 'OUTPUT',
|
|
365
|
+
},
|
|
366
|
+
],
|
|
367
|
+
},
|
|
368
|
+
],
|
|
369
|
+
}), { status: 200 });
|
|
370
|
+
}),
|
|
371
|
+
};
|
|
372
|
+
const client = new OpenCloudClient({ apiKey: 'test-key', rateLimiter });
|
|
373
|
+
const fetched = await client.getRawTaskLogsAsync('universes/1/tasks/2');
|
|
374
|
+
expect(fetched.text).toBe('late');
|
|
375
|
+
expect(fetched.stats.requests).toBe(3);
|
|
376
|
+
expect(fetched.stats.pages).toBe(1);
|
|
377
|
+
expect(fetched.stats.messages).toBe(1);
|
|
378
|
+
});
|
|
379
|
+
});
|
|
256
380
|
//# sourceMappingURL=open-cloud-client.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-cloud-client.test.js","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,EAAE,CAAC,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,YAAY,EAAE;QACZ,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,SAAS,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC;QAC3B,UAAU,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC;QAC5B,WAAW,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC;QAC7B,aAAa,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC;KAChC;CACF,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAEtD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CACtC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAsB,CAClD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,0EAA0E;QAC1E,4EAA4E;QAC5E,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,IAAI,YAAqC,CAAC;QAC1C,IAAI,iBAA0B,CAAC;QAC/B,MAAM,WAAW,GAAG;YAClB,UAAU,EAAE,EAAE,CAAC,EAAE,CACf,KAAK,EACH,IAAkB,EAClB,IAAwC,EACxC,OAAiC,EACjC,EAAE;gBACF,YAAY,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1D,iBAAiB,GAAG,OAAO,EAAE,SAAS,CAAC;gBACvC,qEAAqE;gBACrE,yDAAyD;gBACzD,MAAM,IAAI,GAAG,YAAY,EAAE,IAAiC,CAAC;gBAC7D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;oBAChC,KAAK,MAAM,CAAC;gBACd,CAAC;gBACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE;oBACxD,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC,CACF;SACwB,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC3C,CAAC,EACD,CAAC,EACD,iBAAiB,EACjB,KAAK,EACL,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAC5D,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,2EAA2E;QAC3E,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClD,yEAAyE;QACzE,MAAM,OAAO,GAAG,YAAY,EAAE,OAAiC,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,0EAA0E;QAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG;YAClB,UAAU,EAAE,EAAE,CAAC,EAAE,CACf,KAAK,EAAE,GAAiB,EAAE,IAAwC,EAAE,EAAE;gBACpE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,kEAAkE;gBAClE,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5D,MAAM,IAAI,GAAG,QAAQ,EAAE,IAA6C,CAAC;gBACrE,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;wBAChC,KAAK,MAAM,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE;oBACxD,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC,CACF;SACwB,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAE9D,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG;YAClB,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAiB,EAAE,EAAE;gBAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAE;oBACjE,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC;SACuB,CAAC;QAC5B,EAAE,CAAC,UAAU,CACX,OAAO,EACP,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CACzE,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAClB,0DAA0D,CAC3D,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG;YAClB,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAiB,EAAE,EAAE;gBAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,EAAE;oBACjE,MAAM,EAAE,GAAG;iBACZ,CAAC,CAAC;YACL,CAAC,CAAC;SACuB,CAAC;QAC5B,EAAE,CAAC,UAAU,CACX,OAAO,EACP,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CACnE,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAEtD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAClB,qEAAqE,CACtE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,uEAAuE;QACvE,gCAAgC;QAChC,MAAM,WAAW,GAAG;YAClB,UAAU,EAAE,EAAE,CAAC,EAAE,CACf,KAAK,IAAI,EAAE,CACT,IAAI,QAAQ,CACV,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;aAChE,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CACJ;SACwB,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,CACpD,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,mEAAmE;IACnE,SAAS,mBAAmB,CAC1B,KAA6D,EAC7D,OAAiB,EAAE;QAEnB,OAAO;YACL,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAiB,EAAE,EAAE;gBAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1C,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC;oBACb,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;wBAClC,IAAI,EAAE,sBAAsB,KAAK,CAAC,OAAO,EAAE;wBAC3C,iEAAiE;wBACjE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAChD,CAAC,CAAC;oBACH,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;wBAC5B,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE;wBAC3C,CAAC,CAAC,EAAE,CAAC;iBACR,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;YACJ,CAAC,CAAC;SACuB,CAAC;IAC9B,CAAC;IAED,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,mBAAmB,CAC9B,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EACzD,IAAI,CACL;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CACtE,IAAI,CACL,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAClB,qEAAqE,CACtE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,mBAAmB,CAAC;gBAC/B;oBACE,EAAE,OAAO,EAAE,IAAI,EAAE;oBACjB,EAAE,OAAO,EAAE,IAAI,EAAE;oBACjB,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;iBACnC;aACF,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,CACJ,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,mBAAmB,CAC9B;gBACE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;gBACpC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;gBACrD,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aACpC,EACD,IAAI,CACL;SACF,CAAC,CAAC;QAEH,MAAM,CACJ,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAChE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrE,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,MAAM,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAC1D,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,mBAAmB,CAAC;gBAC/B,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aAClD,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,MAAM,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAC1D,CAAC,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,mBAAmB,CAAC;gBAC/B,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;aACjD,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,MAAM,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CACtD,CAAC,OAAO,CAAC,YAAY,CAAC,+BAA+B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CACnD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CACxE,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,mBAAmB,CAAC,KAAK,CAAC;SACxC,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,MAAM,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,CAC1D,CAAC,OAAO,CAAC,YAAY,CAAC,kCAAkC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,WAAW,GAAG;YAClB,UAAU,EAAE,EAAE,CAAC,EAAE,CACf,KAAK,IAAI,EAAE,CACT,IAAI,QAAQ,CACV,IAAI,CAAC,SAAS,CAAC;gBACb,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;aACjD,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CACJ;SACwB,CAAC;QAE5B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;YACjC,MAAM,EAAE,UAAU;YAClB,WAAW,EAAE,WAAW;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,CACV,MAAM,CAAC,8BAA8B,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CACtD,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"open-cloud-client.test.js","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Characterization tests for how Open Cloud actually delivers a Luau execution
|
|
3
|
+
* task's logs and return value. Nothing here tests our code: every assertion is
|
|
4
|
+
* a claim about Roblox's behaviour that our log handling is built on, written
|
|
5
|
+
* so the claim fails out loud if Roblox changes it.
|
|
6
|
+
*
|
|
7
|
+
* These claims decide real things — whether a truncated run is worth
|
|
8
|
+
* re-fetching, whether `maxPageSize` is worth sending, whether a batch package
|
|
9
|
+
* with no output was dropped or never ran — and none of them are documented by
|
|
10
|
+
* Roblox. Prose in a gotchas file cannot notice when it goes stale. This can.
|
|
11
|
+
*
|
|
12
|
+
* Disabled by default: it spends real Open Cloud quota. To run it:
|
|
13
|
+
*
|
|
14
|
+
* NEVERMORE_CHARACTERIZATION=1 npm test -- open-cloud-logs
|
|
15
|
+
*
|
|
16
|
+
* It reads the key through the same credential store the CLI uses, so
|
|
17
|
+
* `nevermore auth login` is the only setup. The universe and place default to
|
|
18
|
+
* the nevermore-test-runner test target and can be pointed elsewhere with
|
|
19
|
+
* NEVERMORE_CHARACTERIZATION_UNIVERSE / _PLACE.
|
|
20
|
+
*/
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=open-cloud-logs.characterization.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-cloud-logs.characterization.test.d.ts","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-logs.characterization.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Characterization tests for how Open Cloud actually delivers a Luau execution
|
|
3
|
+
* task's logs and return value. Nothing here tests our code: every assertion is
|
|
4
|
+
* a claim about Roblox's behaviour that our log handling is built on, written
|
|
5
|
+
* so the claim fails out loud if Roblox changes it.
|
|
6
|
+
*
|
|
7
|
+
* These claims decide real things — whether a truncated run is worth
|
|
8
|
+
* re-fetching, whether `maxPageSize` is worth sending, whether a batch package
|
|
9
|
+
* with no output was dropped or never ran — and none of them are documented by
|
|
10
|
+
* Roblox. Prose in a gotchas file cannot notice when it goes stale. This can.
|
|
11
|
+
*
|
|
12
|
+
* Disabled by default: it spends real Open Cloud quota. To run it:
|
|
13
|
+
*
|
|
14
|
+
* NEVERMORE_CHARACTERIZATION=1 npm test -- open-cloud-logs
|
|
15
|
+
*
|
|
16
|
+
* It reads the key through the same credential store the CLI uses, so
|
|
17
|
+
* `nevermore auth login` is the only setup. The universe and place default to
|
|
18
|
+
* the nevermore-test-runner test target and can be pointed elsewhere with
|
|
19
|
+
* NEVERMORE_CHARACTERIZATION_UNIVERSE / _PLACE.
|
|
20
|
+
*/
|
|
21
|
+
import { describe, it, expect, beforeAll } from 'vitest';
|
|
22
|
+
import { loadStoredApiKeyAsync } from '@quenty/nevermore-cli-helpers';
|
|
23
|
+
import { OpenCloudClient, getTaskReturnValues, } from './open-cloud-client.js';
|
|
24
|
+
import { RateLimiter } from './rate-limiter.js';
|
|
25
|
+
const ENABLED = process.env.NEVERMORE_CHARACTERIZATION === '1';
|
|
26
|
+
/** The nevermore-test-runner test target, which exists to be run against. */
|
|
27
|
+
const UNIVERSE_ID = Number(process.env.NEVERMORE_CHARACTERIZATION_UNIVERSE ?? 9716264427);
|
|
28
|
+
const PLACE_ID = Number(process.env.NEVERMORE_CHARACTERIZATION_PLACE ?? 138951894938783);
|
|
29
|
+
const LINES_THAT_FIT = 5_000;
|
|
30
|
+
const LINES_AT_CAPACITY = 8_000;
|
|
31
|
+
const LINES_THAT_OVERFLOW_LESS = 10_000;
|
|
32
|
+
const LINES_THAT_OVERFLOW = 20_000;
|
|
33
|
+
/**
|
|
34
|
+
* Retention is bounded by memory, and each retained message costs this many
|
|
35
|
+
* bytes beyond its own text — timestamp, type and framing. Derived by holding
|
|
36
|
+
* the print count at 20,000 and varying only the payload width, then solving
|
|
37
|
+
* `chars + k * messages` for the k that makes that budget constant.
|
|
38
|
+
*/
|
|
39
|
+
const PER_MESSAGE_OVERHEAD_BYTES = 47;
|
|
40
|
+
/** A printed line that names its own position, so survivors identify themselves. */
|
|
41
|
+
const SEQ = new RegExp('^SEQ (' + String.raw `\d` + '+)');
|
|
42
|
+
describe.runIf(ENABLED)('Open Cloud task log delivery', () => {
|
|
43
|
+
let client;
|
|
44
|
+
let placeVersion;
|
|
45
|
+
beforeAll(async () => {
|
|
46
|
+
const apiKey = await loadStoredApiKeyAsync();
|
|
47
|
+
if (!apiKey) {
|
|
48
|
+
throw new Error('No stored Open Cloud API key. Run `nevermore auth login` first.');
|
|
49
|
+
}
|
|
50
|
+
client = new OpenCloudClient({ apiKey, rateLimiter: new RateLimiter() });
|
|
51
|
+
placeVersion = await client.resolveLatestPlaceVersionAsync(UNIVERSE_ID, PLACE_ID, 'saved');
|
|
52
|
+
}, 120_000);
|
|
53
|
+
/**
|
|
54
|
+
* Run a task printing `lines` numbered messages, each optionally padded to
|
|
55
|
+
* widen it, and report what came back.
|
|
56
|
+
*/
|
|
57
|
+
async function printLinesAsync(lines, padChars = 0) {
|
|
58
|
+
const script = padChars
|
|
59
|
+
? `local pad = string.rep("p", ${padChars}) for i = 1, ${lines} do print("SEQ " .. i .. " " .. pad) end`
|
|
60
|
+
: `for i = 1, ${lines} do print("SEQ " .. i) end`;
|
|
61
|
+
const task = await client.createExecutionTaskAsync(UNIVERSE_ID, PLACE_ID, placeVersion, script, 300_000);
|
|
62
|
+
const completed = await client.pollTaskCompletionAsync(task.path);
|
|
63
|
+
expect(completed.state).toBe('COMPLETE');
|
|
64
|
+
const fetched = await client.getRawTaskLogsAsync(completed.path);
|
|
65
|
+
const seq = fetched.text
|
|
66
|
+
.split('\n')
|
|
67
|
+
.map((line) => SEQ.exec(line.trim())?.[1])
|
|
68
|
+
.filter((n) => n !== undefined)
|
|
69
|
+
.map(Number);
|
|
70
|
+
return { task: completed, ...fetched, seq };
|
|
71
|
+
}
|
|
72
|
+
/** Bytes the buffer spent on what it kept, per-message overhead included. */
|
|
73
|
+
function retainedBudget(run) {
|
|
74
|
+
return run.stats.chars + PER_MESSAGE_OVERHEAD_BYTES * run.stats.messages;
|
|
75
|
+
}
|
|
76
|
+
it('delivers a small run complete and in order', async () => {
|
|
77
|
+
const run = await printLinesAsync(LINES_THAT_FIT);
|
|
78
|
+
expect(run.seq).toHaveLength(LINES_THAT_FIT);
|
|
79
|
+
expect(run.seq[0]).toBe(1);
|
|
80
|
+
expect(run.seq[run.seq.length - 1]).toBe(LINES_THAT_FIT);
|
|
81
|
+
// Arrival order is chronological, so no client-side sort is needed — and
|
|
82
|
+
// sorting by createTime would be wrong, since a whole frame shares one.
|
|
83
|
+
expect(run.seq).toEqual([...run.seq].sort((a, b) => a - b));
|
|
84
|
+
}, 300_000);
|
|
85
|
+
it('truncates a large run by dropping the head, keeping a contiguous tail', async () => {
|
|
86
|
+
// Says a short log is missing output rather than proof a run printed
|
|
87
|
+
// little, and rules out the loss being a page we failed to request — an
|
|
88
|
+
// unrequested page would have held the head. It is why the batch parser
|
|
89
|
+
// closes sections on their END marker.
|
|
90
|
+
const run = await printLinesAsync(LINES_THAT_OVERFLOW);
|
|
91
|
+
expect(run.seq.length).toBeLessThan(LINES_THAT_OVERFLOW);
|
|
92
|
+
expect(run.seq[run.seq.length - 1]).toBe(LINES_THAT_OVERFLOW);
|
|
93
|
+
expect(run.seq[0]).toBeGreaterThan(1);
|
|
94
|
+
expect(run.seq).toEqual(Array.from({ length: run.seq.length }, (_, i) => run.seq[0] + i));
|
|
95
|
+
}, 300_000);
|
|
96
|
+
it('bounds retention by memory, not by number of print calls', async () => {
|
|
97
|
+
// Both runs make exactly the same number of print calls. If the buffer held
|
|
98
|
+
// a fixed number of messages they would retain the same count; the padded
|
|
99
|
+
// one keeps a small fraction of it, so the budget is bytes.
|
|
100
|
+
const narrow = await printLinesAsync(LINES_THAT_OVERFLOW);
|
|
101
|
+
const wide = await printLinesAsync(LINES_THAT_OVERFLOW, 500);
|
|
102
|
+
expect(wide.stats.messages).toBeLessThan(narrow.stats.messages / 5);
|
|
103
|
+
expect(wide.stats.chars).toBeGreaterThan(narrow.stats.chars);
|
|
104
|
+
// And it is one budget in both: bytes kept, plus a fixed cost per message,
|
|
105
|
+
// lands on the same number however wide the messages are. ~450 KB.
|
|
106
|
+
expect(retainedBudget(wide)).toBeGreaterThan(retainedBudget(narrow) * 0.95);
|
|
107
|
+
expect(retainedBudget(wide)).toBeLessThan(retainedBudget(narrow) * 1.05);
|
|
108
|
+
expect(retainedBudget(narrow)).toBeGreaterThan(400_000);
|
|
109
|
+
expect(retainedBudget(narrow)).toBeLessThan(500_000);
|
|
110
|
+
}, 300_000);
|
|
111
|
+
it('keeps the same amount however much is printed, at one message width', async () => {
|
|
112
|
+
// The corollary: at a fixed message size, printing twice as much does not
|
|
113
|
+
// get twice as much back. A long run cannot be made to report itself by
|
|
114
|
+
// printing more carefully, which is why counts travel in the return value.
|
|
115
|
+
const atCapacity = await printLinesAsync(LINES_AT_CAPACITY);
|
|
116
|
+
expect(atCapacity.seq).toHaveLength(LINES_AT_CAPACITY);
|
|
117
|
+
const over = await printLinesAsync(LINES_THAT_OVERFLOW_LESS);
|
|
118
|
+
const wayOver = await printLinesAsync(LINES_THAT_OVERFLOW);
|
|
119
|
+
expect(over.seq.length).toBeLessThan(LINES_THAT_OVERFLOW_LESS);
|
|
120
|
+
expect(wayOver.seq.length).toBeLessThan(LINES_THAT_OVERFLOW);
|
|
121
|
+
expect(wayOver.seq.length).toBeGreaterThan(over.seq.length * 0.9);
|
|
122
|
+
expect(wayOver.seq.length).toBeLessThan(over.seq.length * 1.1);
|
|
123
|
+
}, 300_000);
|
|
124
|
+
it('returns only what the task printed, with nothing of its own mixed in', async () => {
|
|
125
|
+
// Rules out engine or internal messages taking room in the buffer: every
|
|
126
|
+
// message that came back is one of ours, so a retained count short of a
|
|
127
|
+
// round number is the byte budget, not foreign output.
|
|
128
|
+
const run = await printLinesAsync(LINES_THAT_OVERFLOW);
|
|
129
|
+
expect(run.seq).toHaveLength(run.stats.messages);
|
|
130
|
+
}, 300_000);
|
|
131
|
+
it('delivers the same messages structured or flat, and never a second page', async () => {
|
|
132
|
+
// Why we send no maxPageSize, and why the view is a free choice: asking for
|
|
133
|
+
// 10 still returns the whole window in one page. A page size that counted
|
|
134
|
+
// messages would cap this at 10 and hand back a token for the rest.
|
|
135
|
+
const run = await printLinesAsync(LINES_THAT_OVERFLOW);
|
|
136
|
+
const structured = await fetchOnePageAsync(run.task.path, {
|
|
137
|
+
view: 'STRUCTURED',
|
|
138
|
+
});
|
|
139
|
+
const flat = await fetchOnePageAsync(run.task.path, {});
|
|
140
|
+
// Same messages in the same order — the view changes the envelope, not the
|
|
141
|
+
// delivery.
|
|
142
|
+
expect(flat.messages).toEqual(structured.messages);
|
|
143
|
+
expect(structured.messages).toHaveLength(run.stats.messages);
|
|
144
|
+
const variants = [
|
|
145
|
+
{ view: 'STRUCTURED', maxPageSize: '10' },
|
|
146
|
+
{ view: 'STRUCTURED', maxPageSize: '100' },
|
|
147
|
+
{ maxPageSize: '10' },
|
|
148
|
+
];
|
|
149
|
+
for (const params of variants) {
|
|
150
|
+
const page = await fetchOnePageAsync(run.task.path, params);
|
|
151
|
+
expect(page.nextPageToken).toBeUndefined();
|
|
152
|
+
expect(page.messages).toEqual(structured.messages);
|
|
153
|
+
}
|
|
154
|
+
}, 300_000);
|
|
155
|
+
it('delivers a large return value, but drops the task entirely past a limit', async () => {
|
|
156
|
+
// Why the returned failure list is capped rather than trusted to arrive: an
|
|
157
|
+
// oversize return value does not come back truncated, it takes the whole
|
|
158
|
+
// run with it — and such a task carries no output and no message saying so,
|
|
159
|
+
// which is why "nothing came back" must stay distinguishable from "the
|
|
160
|
+
// script returned nothing".
|
|
161
|
+
const twoMegabytes = await returnStringAsync(2 * 1024 * 1024);
|
|
162
|
+
expect(twoMegabytes.state).toBe('COMPLETE');
|
|
163
|
+
expect(getTaskReturnValues(twoMegabytes)).toHaveLength(1);
|
|
164
|
+
const fiveMegabytes = await returnStringAsync(5 * 1024 * 1024);
|
|
165
|
+
expect(fiveMegabytes.state).not.toBe('COMPLETE');
|
|
166
|
+
expect(getTaskReturnValues(fiveMegabytes)).toBeUndefined();
|
|
167
|
+
}, 300_000);
|
|
168
|
+
/** Run a task returning a string of `bytes`, and wait for whatever happens. */
|
|
169
|
+
async function returnStringAsync(bytes) {
|
|
170
|
+
const task = await client.createExecutionTaskAsync(UNIVERSE_ID, PLACE_ID, placeVersion, `return string.rep("x", ${bytes})`, 300_000);
|
|
171
|
+
// Returns on any terminal state, failure included — which is one of the
|
|
172
|
+
// outcomes under test here, not an error.
|
|
173
|
+
return client.pollTaskCompletionAsync(task.path);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* One raw request, bypassing the client so the query can be varied. Returns
|
|
177
|
+
* only what the claims above are about.
|
|
178
|
+
*/
|
|
179
|
+
async function fetchOnePageAsync(taskPath, params) {
|
|
180
|
+
const apiKey = (await loadStoredApiKeyAsync());
|
|
181
|
+
const url = new URL(`https://apis.roblox.com/cloud/v2/${taskPath}/logs`);
|
|
182
|
+
for (const [key, value] of Object.entries(params)) {
|
|
183
|
+
url.searchParams.set(key, value);
|
|
184
|
+
}
|
|
185
|
+
const response = await fetch(url.toString(), {
|
|
186
|
+
headers: { 'X-API-Key': apiKey },
|
|
187
|
+
});
|
|
188
|
+
expect(response.ok).toBe(true);
|
|
189
|
+
const data = (await response.json());
|
|
190
|
+
const messages = [];
|
|
191
|
+
for (const entry of data.luauExecutionSessionTaskLogs ?? []) {
|
|
192
|
+
if (entry.structuredMessages?.length) {
|
|
193
|
+
messages.push(...entry.structuredMessages.map((m) => m.message));
|
|
194
|
+
}
|
|
195
|
+
else if (entry.messages?.length) {
|
|
196
|
+
messages.push(...entry.messages);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return { nextPageToken: data.nextPageToken || undefined, messages };
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
//# sourceMappingURL=open-cloud-logs.characterization.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-cloud-logs.characterization.test.js","sourceRoot":"","sources":["../../../src/utils/open-cloud/open-cloud-logs.characterization.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager-utils.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"package-manager-utils.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,eAAO,MAAM,gBAAgB,yCAA0C,CAAC;AAExE,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE7D,eAAO,MAAM,uBAAuB,EAAE,cAAuB,CAAC;AAW9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEvE;AA4CD;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC7C,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,CAAC,CA4BzB;AAuBD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,EAAE,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAMrC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* same tool the project was set up with.
|
|
4
4
|
*/
|
|
5
5
|
import * as fs from 'fs/promises';
|
|
6
|
+
import * as os from 'os';
|
|
6
7
|
import * as path from 'path';
|
|
7
8
|
export const PACKAGE_MANAGERS = ['pnpm', 'npm', 'yarn', 'bun'];
|
|
8
9
|
export const DEFAULT_PACKAGE_MANAGER = 'pnpm';
|
|
@@ -61,8 +62,18 @@ async function detectInDirectoryAsync(directory) {
|
|
|
61
62
|
* hasn't declared anything yet.
|
|
62
63
|
*/
|
|
63
64
|
export async function detectPackageManagerAsync(startDirectory) {
|
|
64
|
-
let directory = path.resolve(startDirectory);
|
|
65
|
+
let directory = await resolveRealPathAsync(path.resolve(startDirectory));
|
|
66
|
+
// Walking to the filesystem root adopts lockfiles that belong to nobody. A
|
|
67
|
+
// stray package-lock.json in a home directory — npm leaves one behind after a
|
|
68
|
+
// single `npm install` run there — made every project below it detect as npm,
|
|
69
|
+
// and in this monorepo that means installing with the one tool that rejects
|
|
70
|
+
// `workspace:` ranges outright. Nothing above the home directory can be part
|
|
71
|
+
// of the project, so the search stops there.
|
|
72
|
+
const boundary = await resolveRealPathAsync(os.homedir());
|
|
65
73
|
for (;;) {
|
|
74
|
+
if (boundary !== undefined && isSamePath(directory, boundary)) {
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
66
77
|
const detected = await detectInDirectoryAsync(directory);
|
|
67
78
|
if (detected) {
|
|
68
79
|
return detected;
|
|
@@ -75,6 +86,26 @@ export async function detectPackageManagerAsync(startDirectory) {
|
|
|
75
86
|
}
|
|
76
87
|
return DEFAULT_PACKAGE_MANAGER;
|
|
77
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Resolve symlinks and, on Windows, 8.3 short names — `C:\Users\JAMESO~1` and
|
|
91
|
+
* `C:\Users\James Onnen` are the same directory and must compare equal.
|
|
92
|
+
* Returns the input unchanged when the path does not exist.
|
|
93
|
+
*/
|
|
94
|
+
async function resolveRealPathAsync(target) {
|
|
95
|
+
try {
|
|
96
|
+
return await fs.realpath(target);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return target;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Windows paths are case-insensitive; POSIX ones are not. */
|
|
103
|
+
function isSamePath(left, right) {
|
|
104
|
+
if (process.platform === 'win32') {
|
|
105
|
+
return left.toLowerCase() === right.toLowerCase();
|
|
106
|
+
}
|
|
107
|
+
return left === right;
|
|
108
|
+
}
|
|
78
109
|
/**
|
|
79
110
|
* Builds the command that adds dependencies to a project. Only npm spells this
|
|
80
111
|
* `install`; the rest treat a bare `install` as "install the lockfile" and need
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager-utils.js","sourceRoot":"","sources":["../../src/utils/package-manager-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAU,CAAC;AAIxE,MAAM,CAAC,MAAM,uBAAuB,GAAmB,MAAM,CAAC;AAE9D,MAAM,SAAS,GAAqD;IAClE,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAC1B,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAC/B,CAAC,UAAU,EAAE,KAAK,CAAC;IACnB,CAAC,WAAW,EAAE,KAAK,CAAC;IACpB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrB,CAAC,mBAAmB,EAAE,KAAK,CAAC;CAC7B,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAQ,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACzC,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAChC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACpC,OAAO,CACR,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAiC,CAAC;QACpE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACjE,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,2DAA2D;IAC7D,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,SAAS,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChD,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,cAAsB;IAEtB,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"package-manager-utils.js","sourceRoot":"","sources":["../../src/utils/package-manager-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,31 @@ describe('package-manager-utils', () => {
|
|
|
58
58
|
it('defaults to pnpm', async () => {
|
|
59
59
|
expect(await detectPackageManagerAsync(root)).toBe('pnpm');
|
|
60
60
|
});
|
|
61
|
+
it('ignores a lockfile sitting in the home directory', async () => {
|
|
62
|
+
// npm leaves a package-lock.json behind after one `npm install` run in a
|
|
63
|
+
// home directory, and walking to the filesystem root adopted it — every
|
|
64
|
+
// project below it then installed with the one tool that rejects this
|
|
65
|
+
// repo's `workspace:` ranges. This test was the symptom: the temp dir
|
|
66
|
+
// lives under the home directory on Windows, so "defaults to pnpm" here
|
|
67
|
+
// failed on a machine that had one and passed everywhere else.
|
|
68
|
+
const home = await fs.realpath(os.homedir());
|
|
69
|
+
const marker = path.join(home, 'package-lock.json');
|
|
70
|
+
const alreadyThere = await fs
|
|
71
|
+
.access(marker)
|
|
72
|
+
.then(() => true)
|
|
73
|
+
.catch(() => false);
|
|
74
|
+
if (!alreadyThere) {
|
|
75
|
+
await fs.writeFile(marker, '{}');
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
expect(await detectPackageManagerAsync(root)).toBe('pnpm');
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
if (!alreadyThere) {
|
|
82
|
+
await fs.rm(marker, { force: true });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
61
86
|
it('still honors an npm project', async () => {
|
|
62
87
|
await writeFileAsync('package.json', JSON.stringify({ name: 'game' }));
|
|
63
88
|
await writeFileAsync('package-lock.json', '{}');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager-utils.test.js","sourceRoot":"","sources":["../../src/utils/package-manager-utils.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"package-manager-utils.test.js","sourceRoot":"","sources":["../../src/utils/package-manager-utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* End-to-end test for one aggregated batch run.
|
|
3
|
+
*
|
|
4
|
+
* Every piece of this path has unit tests — the parser, the renderer, the job
|
|
5
|
+
* context — and none of them cover the thing that actually goes wrong, which is
|
|
6
|
+
* the seams between them. What a reader sees is produced by a log travelling
|
|
7
|
+
* through all three, and until the execution returned data rather than printing
|
|
8
|
+
* it, that could not be asserted on without spying on `console.log`.
|
|
9
|
+
*
|
|
10
|
+
* So this drives the whole path from the one end that is not ours: a transport
|
|
11
|
+
* handing back the messages a real Open Cloud task produces, complete with the
|
|
12
|
+
* message types, the multi-line error and the trailing JSON summary. Everything
|
|
13
|
+
* downstream is the real code, and the assertions are on what a person would
|
|
14
|
+
* read and on what each package's result came out as.
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=batch-run.e2e.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-run.e2e.test.d.ts","sourceRoot":"","sources":["../../../src/utils/testing/batch-run.e2e.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|