41 lines
1.6 KiB
JavaScript
41 lines
1.6 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert');
|
|
|
|
test('Integration Test Suite', async (t) => {
|
|
|
|
await t.test('SSO Manager should be running and healthy', async () => {
|
|
const res = await fetch('http://localhost:3001/health');
|
|
assert.strictEqual(res.status, 200);
|
|
const body = await res.json();
|
|
assert.strictEqual(body.status, 'ok');
|
|
});
|
|
|
|
await t.test('Proxy should be running and route to SSO Manager', async () => {
|
|
// Testing the proxy routes traffic to SSO manager
|
|
const res = await fetch('http://sso.localtest.me/.well-known/openid-configuration');
|
|
assert.ok(res.status === 200 || res.status === 301);
|
|
const body = await res.json();
|
|
assert.ok(body.issuer);
|
|
});
|
|
|
|
await t.test('Proxy Management API should be running', async () => {
|
|
const res = await fetch('http://localhost:3000/health');
|
|
assert.strictEqual(res.status, 200);
|
|
const body = await res.json();
|
|
assert.strictEqual(body.status, 'ok');
|
|
});
|
|
|
|
await t.test('OpenBao should be running and healthy', async () => {
|
|
// Port 8080 is mapped to OpenBao's 8200 in docker-compose.yml
|
|
const res = await fetch('http://localhost:8080/v1/sys/health');
|
|
assert.ok(res.status === 200 || res.status === 501); // 501 means not initialized/sealed, but responsive
|
|
});
|
|
|
|
await t.test('SSO Manager should proxy to OpenBao (integration test)', async () => {
|
|
// Test if SSO Manager proxies to OpenBao
|
|
// Without authentication, this should return 401 Unauthorized from SSO Manager's middleware
|
|
const res = await fetch('http://localhost:3001/api/vault/sys/health');
|
|
assert.strictEqual(res.status, 401);
|
|
});
|
|
});
|