return error where identity api throws
Signed-off-by: Brian Fletcher <brian@roadie.io>
This commit is contained in:
@@ -886,11 +886,8 @@ data: {"id":1,"taskId":"a-random-id","type":"completion","createdAt":"","body":{
|
||||
},
|
||||
);
|
||||
});
|
||||
it('should not throw', async () => {
|
||||
const broker =
|
||||
taskBroker.dispatch as jest.Mocked<TaskBroker>['dispatch'];
|
||||
|
||||
await request(app)
|
||||
it('return an error', async () => {
|
||||
const response = await request(app)
|
||||
.post('/v2/tasks')
|
||||
.send({
|
||||
templateRef: stringifyEntityRef({
|
||||
@@ -901,42 +898,7 @@ data: {"id":1,"taskId":"a-random-id","type":"completion","createdAt":"","body":{
|
||||
required: 'required-value',
|
||||
},
|
||||
});
|
||||
expect(broker).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
createdBy: undefined,
|
||||
secrets: {
|
||||
backstageToken: undefined,
|
||||
},
|
||||
|
||||
spec: {
|
||||
apiVersion: mockTemplate.apiVersion,
|
||||
steps: mockTemplate.spec.steps.map((step, index) => ({
|
||||
...step,
|
||||
id: step.id ?? `step-${index + 1}`,
|
||||
name: step.name ?? step.action,
|
||||
})),
|
||||
output: mockTemplate.spec.output ?? {},
|
||||
parameters: {
|
||||
required: 'required-value',
|
||||
},
|
||||
user: {
|
||||
entity: undefined,
|
||||
ref: undefined,
|
||||
},
|
||||
templateInfo: {
|
||||
entityRef: stringifyEntityRef({
|
||||
kind: 'Template',
|
||||
namespace: 'Default',
|
||||
name: mockTemplate.metadata?.name,
|
||||
}),
|
||||
baseUrl: 'https://dev.azure.com',
|
||||
entity: {
|
||||
metadata: mockTemplate.metadata,
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
);
|
||||
expect(response.status).not.toEqual(201);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -131,24 +131,6 @@ function buildDefaultIdentityClient({
|
||||
};
|
||||
}
|
||||
|
||||
const getIdentity = async ({
|
||||
request,
|
||||
identity,
|
||||
logger,
|
||||
}: {
|
||||
request: express.Request;
|
||||
identity: IdentityApi;
|
||||
logger: Logger;
|
||||
}) => {
|
||||
let callerIdentity = undefined;
|
||||
try {
|
||||
callerIdentity = await identity.getIdentity({ request });
|
||||
} catch (e: any) {
|
||||
logger.debug(`identity could not be determined: ${e.message}`);
|
||||
}
|
||||
return callerIdentity;
|
||||
};
|
||||
|
||||
/**
|
||||
* A method to create a router for the scaffolder backend plugin.
|
||||
* @public
|
||||
@@ -228,10 +210,8 @@ export async function createRouter(
|
||||
async (req, res) => {
|
||||
const { namespace, kind, name } = req.params;
|
||||
|
||||
const userIdentity = await getIdentity({
|
||||
const userIdentity = await identity.getIdentity({
|
||||
request: req,
|
||||
logger,
|
||||
identity,
|
||||
});
|
||||
const token = userIdentity?.token;
|
||||
|
||||
@@ -276,10 +256,8 @@ export async function createRouter(
|
||||
defaultKind: 'template',
|
||||
});
|
||||
|
||||
const callerIdentity = await getIdentity({
|
||||
const callerIdentity = await identity.getIdentity({
|
||||
request: req,
|
||||
logger,
|
||||
identity,
|
||||
});
|
||||
const token = callerIdentity?.token;
|
||||
const userEntityRef = callerIdentity?.identity.userEntityRef;
|
||||
@@ -485,8 +463,11 @@ export async function createRouter(
|
||||
throw new InputError('Input template is not a template');
|
||||
}
|
||||
|
||||
const token = (await getIdentity({ request: req, logger, identity }))
|
||||
?.token;
|
||||
const token = (
|
||||
await identity.getIdentity({
|
||||
request: req,
|
||||
})
|
||||
)?.token;
|
||||
|
||||
for (const parameters of [template.spec.parameters ?? []].flat()) {
|
||||
const result = validate(body.values, parameters);
|
||||
|
||||
Reference in New Issue
Block a user