Merge pull request #29923 from solimant/28768_scaffolder_tests

Add tests for Scaffolder
This commit is contained in:
Ben Lambert
2025-06-09 17:12:59 +02:00
committed by GitHub
6 changed files with 1315 additions and 14 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-backend': patch
---
Add tests for Scaffolder
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/backend-test-utils': patch
---
Make the `user` credentials mock behave more like production
@@ -111,16 +111,24 @@ export namespace mockCredentials {
options?: { actor?: { subject: string } },
): BackstageCredentials<BackstageUserPrincipal> {
validateUserEntityRef(userEntityRef);
return {
$$type: '@backstage/BackstageCredentials',
principal: {
type: 'user',
userEntityRef,
...(options?.actor && {
actor: { type: 'service', subject: options.actor.subject },
}),
return Object.defineProperty(
{
$$type: '@backstage/BackstageCredentials',
principal: {
type: 'user',
userEntityRef,
...(options?.actor && {
actor: { type: 'service', subject: options.actor.subject },
}),
},
},
};
'token',
{
enumerable: false,
configurable: true,
value: user.token(),
},
);
}
/**
File diff suppressed because it is too large Load Diff
@@ -18,6 +18,7 @@ import { resolveSafeChildPath } from '@backstage/backend-plugin-api';
import fs from 'fs/promises';
import path from 'path';
import { z as zod } from 'zod';
import { examples } from './rename.examples';
const contentSchema = (z: typeof zod) =>
z.object({
@@ -39,6 +40,7 @@ export const createFilesystemReadDirAction = () => {
id: 'fs:readdir',
description: 'Reads files and directories from the workspace',
supportsDryRun: true,
examples,
schema: {
input: {
paths: z => z.array(z.string().min(1)),
@@ -454,9 +454,12 @@ describe.each([
expect.objectContaining({
createdBy: 'user:default/mock',
secrets: {
__initiatorCredentials: JSON.stringify(credentials),
__initiatorCredentials: JSON.stringify({
...credentials,
token: mockToken,
}),
backstageToken: mockToken,
},
spec: {
apiVersion: mockTemplate.apiVersion,
steps: mockTemplate.spec.steps.map((step, index) => ({
@@ -1116,7 +1119,11 @@ data: {"id":1,"taskId":"a-random-id","type":"completion","createdAt":"","body":{
expect.objectContaining({
createdBy: 'user:default/mock',
secrets: {
__initiatorCredentials: JSON.stringify(credentials),
__initiatorCredentials: JSON.stringify({
...credentials,
token: mockCredentials.user.token(),
}),
backstageToken: mockCredentials.user.token(),
},
spec: {
@@ -1185,7 +1192,11 @@ data: {"id":1,"taskId":"a-random-id","type":"completion","createdAt":"","body":{
expect.objectContaining({
createdBy: 'user:default/mock',
secrets: {
__initiatorCredentials: JSON.stringify(credentials),
__initiatorCredentials: JSON.stringify({
...credentials,
token: mockCredentials.user.token(),
}),
backstageToken: mockCredentials.user.token(),
},
spec: {
@@ -1273,7 +1284,11 @@ data: {"id":1,"taskId":"a-random-id","type":"completion","createdAt":"","body":{
expect.objectContaining({
createdBy: 'user:default/mock',
secrets: {
__initiatorCredentials: JSON.stringify(credentials),
__initiatorCredentials: JSON.stringify({
...credentials,
token: mockCredentials.user.token(),
}),
backstageToken: mockCredentials.user.token(),
},
spec: {