From 343ef34599c642f8a26951da7c7839099f3f25c1 Mon Sep 17 00:00:00 2001 From: Niklas Granander Date: Fri, 3 Dec 2021 16:10:55 +0100 Subject: [PATCH 1/2] Handle missing Xcode data from old versions of XCMetrics Signed-off-by: Niklas Granander --- .changeset/three-coins-kiss.md | 5 +++++ plugins/xcmetrics/src/api/types.ts | 2 +- .../components/BuildDetails/BuildDetails.test.tsx | 14 ++++++++++++++ .../src/components/BuildDetails/BuildDetails.tsx | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 .changeset/three-coins-kiss.md diff --git a/.changeset/three-coins-kiss.md b/.changeset/three-coins-kiss.md new file mode 100644 index 0000000000..3a231be259 --- /dev/null +++ b/.changeset/three-coins-kiss.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-xcmetrics': patch +--- + +Handle a case where Xcode data from XCMetrics version < 0.0.8 could be missing diff --git a/plugins/xcmetrics/src/api/types.ts b/plugins/xcmetrics/src/api/types.ts index 44f27872ca..6c7d133259 100644 --- a/plugins/xcmetrics/src/api/types.ts +++ b/plugins/xcmetrics/src/api/types.ts @@ -163,7 +163,7 @@ export type Xcode = { export type BuildResponse = { build: Build; targets: Target[]; - xcode: Xcode; + xcode?: Xcode; // Can be undefined if XCMetrics version < v0.0.8 }; export type BuildFilters = { diff --git a/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.test.tsx b/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.test.tsx index 7083d890d6..c26c101143 100644 --- a/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.test.tsx +++ b/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.test.tsx @@ -51,6 +51,20 @@ describe('BuildDetails', () => { ).toBeInTheDocument(); expect(rendered.getByText(client.mockBuild.schema)).toBeInTheDocument(); }); + + it('should render if xcode data is not present', async () => { + const rendered = await renderInTestApp( + + + , + ); + + expect( + rendered.getByText('Xcode').parentNode?.childNodes[1].textContent, + ).toEqual('Unknown'); + }); }); describe('BuildDetails with request', () => { diff --git a/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.tsx b/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.tsx index 1d77bf7a7a..8732bd92d8 100644 --- a/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.tsx +++ b/plugins/xcmetrics/src/components/BuildDetails/BuildDetails.tsx @@ -78,7 +78,7 @@ export const BuildDetails = ({ {formatStatus(build.buildStatus)} ), - xcode: `${xcode.version} (${xcode.buildNumber})`, + xcode: xcode ? `${xcode.version} (${xcode.buildNumber})` : 'Unknown', CI: build.isCi, }; From cfd01a226956fde10c3a2d5b7f6b4fa3cdfcbe8a Mon Sep 17 00:00:00 2001 From: Niklas Granander Date: Fri, 3 Dec 2021 16:58:41 +0100 Subject: [PATCH 2/2] Fix spelling in changeset Signed-off-by: Niklas Granander --- .changeset/three-coins-kiss.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/three-coins-kiss.md b/.changeset/three-coins-kiss.md index 3a231be259..a4b0c83288 100644 --- a/.changeset/three-coins-kiss.md +++ b/.changeset/three-coins-kiss.md @@ -2,4 +2,4 @@ '@backstage/plugin-xcmetrics': patch --- -Handle a case where Xcode data from XCMetrics version < 0.0.8 could be missing +Handle a case where XCode data from backend (before 0.0.8) could be missing