62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import request from 'supertest';
|
|
import { createApp } from '../src/app.js';
|
|
|
|
process.env.AUTH_BYPASS = 'true';
|
|
process.env.LLM_MOCK = 'true';
|
|
|
|
test('GET /healthz returns healthy response', async () => {
|
|
const app = createApp();
|
|
const res = await request(app).get('/healthz');
|
|
|
|
assert.equal(res.status, 200);
|
|
assert.equal(res.body.ok, true);
|
|
assert.equal(typeof res.body.requestId, 'string');
|
|
assert.equal(typeof res.headers['x-request-id'], 'string');
|
|
});
|
|
|
|
test('POST /core/create-signed-url requires auth', async () => {
|
|
process.env.AUTH_BYPASS = 'false';
|
|
const app = createApp();
|
|
const res = await request(app).post('/core/create-signed-url').send({
|
|
fileUri: 'gs://krow-workforce-dev-private/foo.pdf',
|
|
});
|
|
|
|
assert.equal(res.status, 401);
|
|
assert.equal(res.body.code, 'UNAUTHENTICATED');
|
|
process.env.AUTH_BYPASS = 'true';
|
|
});
|
|
|
|
test('POST /core/create-signed-url returns signed URL', async () => {
|
|
const app = createApp();
|
|
const res = await request(app)
|
|
.post('/core/create-signed-url')
|
|
.set('Authorization', 'Bearer test-token')
|
|
.send({
|
|
fileUri: 'gs://krow-workforce-dev-private/foo.pdf',
|
|
expiresInSeconds: 300,
|
|
});
|
|
|
|
assert.equal(res.status, 200);
|
|
assert.equal(typeof res.body.signedUrl, 'string');
|
|
assert.equal(typeof res.body.expiresAt, 'string');
|
|
assert.equal(typeof res.body.requestId, 'string');
|
|
});
|
|
|
|
test('POST /invokeLLM legacy alias works', async () => {
|
|
const app = createApp();
|
|
const res = await request(app)
|
|
.post('/invokeLLM')
|
|
.set('Authorization', 'Bearer test-token')
|
|
.send({
|
|
prompt: 'hello',
|
|
responseJsonSchema: { type: 'object' },
|
|
fileUrls: [],
|
|
});
|
|
|
|
assert.equal(res.status, 200);
|
|
assert.equal(typeof res.body.result, 'object');
|
|
assert.equal(typeof res.body.model, 'string');
|
|
});
|