catalog: add support for relative targets and implicit types in Location entities
This commit is contained in:
@@ -4,6 +4,5 @@ metadata:
|
||||
name: acme-corp
|
||||
description: A collection of all Backstage example Groups
|
||||
spec:
|
||||
type: github
|
||||
targets:
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/org.yaml
|
||||
- ./acme/org.yaml
|
||||
|
||||
@@ -16,12 +16,11 @@ metadata:
|
||||
name: example-groups
|
||||
description: A collection of all Backstage example Groups
|
||||
spec:
|
||||
type: github
|
||||
targets:
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/infrastructure-group.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/boxoffice-group.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/backstage-group.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/team-a-group.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/team-b-group.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/team-c-group.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme/team-d-group.yaml
|
||||
- ./infrastructure-group.yaml
|
||||
- ./boxoffice-group.yaml
|
||||
- ./backstage-group.yaml
|
||||
- ./team-a-group.yaml
|
||||
- ./team-b-group.yaml
|
||||
- ./team-c-group.yaml
|
||||
- ./team-d-group.yaml
|
||||
|
||||
@@ -4,10 +4,9 @@ metadata:
|
||||
name: example-apis
|
||||
description: A collection of all Backstage example APIs
|
||||
spec:
|
||||
type: github
|
||||
targets:
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/apis/hello-world-api.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/apis/petstore-api.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/apis/spotify-api.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/apis/streetlights-api.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/apis/swapi-graphql.yaml
|
||||
- ./apis/hello-world-api.yaml
|
||||
- ./apis/petstore-api.yaml
|
||||
- ./apis/spotify-api.yaml
|
||||
- ./apis/streetlights-api.yaml
|
||||
- ./apis/swapi-graphql.yaml
|
||||
|
||||
@@ -4,14 +4,13 @@ metadata:
|
||||
name: example-components
|
||||
description: A collection of all Backstage example components
|
||||
spec:
|
||||
type: github
|
||||
targets:
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/artist-lookup-component.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/petstore-component.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/playback-order-component.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/podcast-api-component.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/queue-proxy-component.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/searcher-component.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/playback-lib-component.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/www-artist-component.yaml
|
||||
- https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/components/shuffle-api-component.yaml
|
||||
- ./components/artist-lookup-component.yaml
|
||||
- ./components/petstore-component.yaml
|
||||
- ./components/playback-order-component.yaml
|
||||
- ./components/podcast-api-component.yaml
|
||||
- ./components/queue-proxy-component.yaml
|
||||
- ./components/searcher-component.yaml
|
||||
- ./components/playback-lib-component.yaml
|
||||
- ./components/www-artist-component.yaml
|
||||
- ./components/shuffle-api-component.yaml
|
||||
|
||||
@@ -54,9 +54,9 @@ describe('LocationV1alpha1Validator', () => {
|
||||
await expect(validator.check(entity)).resolves.toBe(false);
|
||||
});
|
||||
|
||||
it('rejects missing type', async () => {
|
||||
it('accepts missing type', async () => {
|
||||
delete (entity as any).spec.type;
|
||||
await expect(validator.check(entity)).rejects.toThrow(/type/);
|
||||
await expect(validator.check(entity)).resolves.toBe(true);
|
||||
});
|
||||
|
||||
it('rejects wrong type', async () => {
|
||||
|
||||
@@ -26,7 +26,7 @@ const schema = yup.object<Partial<LocationEntityV1alpha1>>({
|
||||
kind: yup.string().required().equals([KIND]),
|
||||
spec: yup
|
||||
.object({
|
||||
type: yup.string().required().min(1),
|
||||
type: yup.string().notRequired().min(1),
|
||||
target: yup.string().notRequired().min(1),
|
||||
targets: yup.array(yup.string().required()).notRequired(),
|
||||
})
|
||||
@@ -37,7 +37,7 @@ export interface LocationEntityV1alpha1 extends Entity {
|
||||
apiVersion: typeof API_VERSION[number];
|
||||
kind: typeof KIND;
|
||||
spec: {
|
||||
type: string;
|
||||
type?: string;
|
||||
target?: string;
|
||||
targets?: string[];
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user