backend-common: add test for identity service shim

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2024-08-21 10:50:42 +02:00
parent 8ba77edaab
commit 52bad657d5
@@ -18,9 +18,14 @@ import {
coreServices,
createBackendPlugin,
} from '@backstage/backend-plugin-api';
import { mockServices, startTestBackend } from '@backstage/backend-test-utils';
import {
mockCredentials,
mockServices,
startTestBackend,
} from '@backstage/backend-test-utils';
import { EventEmitter } from 'events';
import { Router } from 'express';
import request from 'supertest';
import { createLegacyAuthAdapters } from '..';
import { legacyPlugin } from './legacy';
// eslint-disable-next-line @backstage/no-relative-monorepo-imports
@@ -115,4 +120,54 @@ describe('legacyPlugin', () => {
await done;
});
it('can auth users with the identity service shim', async () => {
const backend = await startTestBackend({
features: [
mockServices.rootConfig.factory({
data: {
backend: {
auth: {
keys: [
{
secret: 'test',
},
],
},
},
},
}),
legacyPlugin(
'test',
Promise.resolve({
async default({ identity }) {
const router = Router();
router.get('/', async (req, res) => {
const user = await identity.getIdentity({ request: req });
res.json(user);
});
return router;
},
}),
),
],
});
const res = await request(backend.server)
.get('/api/test')
.set('authorization', mockCredentials.user.header());
const mockUserRef = mockCredentials.user().principal.userEntityRef;
expect(res.status).toBe(200);
expect(res.body).toEqual({
token: mockCredentials.user.token(),
identity: {
type: 'user',
userEntityRef: mockUserRef,
ownershipEntityRefs: [mockUserRef],
},
});
});
});