| 1234567891011121314151617181920212223 |
- import { test } from 'node:test';
- import assert from 'node:assert/strict';
- import { serviceConfig, createIndustryService } from '../server/industry-service.mjs';
- test('production service requires one explicit data binding and a server-side token', () => {
- assert.throws(() => serviceConfig({}), /TOKEN_REQUIRED/);
- assert.throws(() => serviceConfig({ KSF_LIBRARY_API_TOKEN: 'test' }), /ONE_DATA_BINDING/);
- assert.throws(() => serviceConfig({ KSF_LIBRARY_API_TOKEN: 'test', KSF_VOC_DB: 'a', KSF_INDUSTRY_SNAPSHOT: 'b' }), /ONE_DATA_BINDING/);
- assert.throws(() => serviceConfig({ KSF_LIBRARY_API_TOKEN: 'test', KSF_VOC_DB: 'a', KSF_INDUSTRY_PORT: 'NaN' }), /INVALID_INDUSTRY_PORT/);
- assert.equal(serviceConfig({ KSF_LIBRARY_API_TOKEN: 'test', KSF_VOC_DB: 'a' }).port, 4190);
- });
- test('standalone service has no static-file, collection, admin or generic proxy route', async () => {
- const server = createIndustryService({ token: 'test', snapshot: 'not-read' });
- await new Promise(resolve => server.listen(0, '127.0.0.1', resolve));
- try {
- const base = `http://127.0.0.1:${server.address().port}`;
- for (const route of ['/api/collect', '/admin', '/api/industry?path=x']) {
- assert.equal((await fetch(base + route)).status, 404);
- }
- assert.equal((await fetch(base + '/api/industry', { method: 'POST', body: '{}' })).status, 401);
- } finally { await new Promise(resolve => server.close(resolve)); }
- });
|