diff --git a/.changeset/dull-banks-shake.md b/.changeset/dull-banks-shake.md new file mode 100644 index 0000000000..1882cf4f42 --- /dev/null +++ b/.changeset/dull-banks-shake.md @@ -0,0 +1,5 @@ +--- +'@backstage/catalog-model': patch +--- + +Added support for icons containing colons diff --git a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts index 9fe041a839..3efef8691a 100644 --- a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts +++ b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.test.ts @@ -197,7 +197,7 @@ describe('FieldFormatEntityPolicy', () => { }, ); - it.each([[123], [{}], [[]], ['abc xyz']])( + it.each([[123], [{}], [[]]])( 'rejects bad link icon value %s', async (icon: unknown) => { data.metadata.links = [{ url: 'http://foo', icon }]; @@ -208,10 +208,8 @@ describe('FieldFormatEntityPolicy', () => { it('rejects a single bad link icon value', async () => { data.metadata.links = [ { url: 'http://foo', icon: 'good' }, - { url: 'http://foo', icon: 'not good' }, + { url: 'http://foo', icon: 123 }, ]; - await expect(policy.enforce(data)).rejects.toThrow( - /links.1.icon.*"not good"/i, - ); + await expect(policy.enforce(data)).rejects.toThrow(/links.1.icon.*"123"/i); }); }); diff --git a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts index 18e9523478..961eb16ecd 100644 --- a/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts +++ b/packages/catalog-model/src/entity/policies/FieldFormatEntityPolicy.ts @@ -161,7 +161,7 @@ export class FieldFormatEntityPolicy implements EntityPolicy { optional( `links.${i}.icon`, links[i]?.icon, - KubernetesValidatorFunctions.isValidObjectName, + CommonValidatorFunctions.isNonEmptyString, ); }