backend-common: add test for identity service shim
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
@@ -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],
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user