Files
poshmanager/server/test/entra.test.mjs
2026-06-25 12:05:53 -05:00

20 lines
727 B
JavaScript

import './setup.mjs';
import test from 'node:test';
import assert from 'node:assert/strict';
import { load } from './setup.mjs';
const { isEntraLoginConfigured, signState, verifyState } = await load('../services/entraService.js');
test('Entra login is disabled when not configured', () => {
// The test environment leaves ENTRA_* unset, so login must not be offered.
assert.equal(isEntraLoginConfigured(), false);
});
test('signed state round-trips and rejects tampering', () => {
const state = signState({ nonce: 42 });
const decoded = verifyState(state);
assert.equal(decoded.purpose, 'entra-state');
assert.throws(() => verifyState(state + 'tampered'));
assert.throws(() => verifyState('not-a-token'));
});