diff --git a/.changeset/lucky-pens-ring.md b/.changeset/lucky-pens-ring.md new file mode 100644 index 0000000000..04b0749fd0 --- /dev/null +++ b/.changeset/lucky-pens-ring.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-badges-backend': patch +--- + +Fix generated badge links diff --git a/plugins/badges-backend/src/badges.test.ts b/plugins/badges-backend/src/badges.test.ts index 15be96154e..1d5e57141d 100644 --- a/plugins/badges-backend/src/badges.test.ts +++ b/plugins/badges-backend/src/badges.test.ts @@ -65,4 +65,28 @@ describe('BadgeFactories', () => { expect(badge.kind).toEqual('entity'); } }); + + it('returns valid link for entity', () => { + const entity: Entity = { + apiVersion: 'v1', + kind: 'service', + metadata: { + name: 'test', + }, + }; + + const context: BadgeContext = { + badgeUrl: '/dummy/url', + config, + entity, + }; + + expect.assertions(Object.keys(badgeFactories).length); + for (const badgeFactory of Object.values(badgeFactories)) { + const badge = badgeFactory.createBadge(context); + expect(badge.link).toContain( + 'http://localhost/catalog/default/service/test', + ); + } + }); }); diff --git a/plugins/badges-backend/src/badges.ts b/plugins/badges-backend/src/badges.ts index f8637dfe88..ccd5f55855 100644 --- a/plugins/badges-backend/src/badges.ts +++ b/plugins/badges-backend/src/badges.ts @@ -24,8 +24,8 @@ function appTitle(context: BadgeContext): string { function entityUrl(context: BadgeContext): string { const e = context.entity!; - const entityUri = `${e.kind}/${ - e.metadata.namespace || ENTITY_DEFAULT_NAMESPACE + const entityUri = `${e.metadata.namespace || ENTITY_DEFAULT_NAMESPACE}/${ + e.kind }/${e.metadata.name}`; const catalogUrl = `${context.config.getString('app.baseUrl')}/catalog`; return `${catalogUrl}/${entityUri}`.toLowerCase();