From b14108b79eb8cd488fea90462c2fb6e2025458da Mon Sep 17 00:00:00 2001 From: Darrell Mozingo Date: Mon, 31 Jan 2022 16:29:11 -0500 Subject: [PATCH] feat: display untenanted urls in error message Invert what we're looking for (invalid, rather than valid), so the error message is more helpful by displaying naughty urls. --- src/rulesets/specification.ts | 11 +++++------ .../__snapshots__/specification.test.ts.snap | 16 ++++++++-------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/rulesets/specification.ts b/src/rulesets/specification.ts index b1a91de1..885c911e 100644 --- a/src/rulesets/specification.ts +++ b/src/rulesets/specification.ts @@ -53,16 +53,15 @@ export const rules = { (spec, context, docs) => { docs.includeDocsLink(links.standards.orgAndGroupTenantResources); docs.becomesEffectiveOn(new Date("2021-07-01")); - const paths = Object.keys(spec.paths); - const tenantUrls = paths.filter( + const untenantedUrls = Object.keys(spec.paths).filter( (url) => - url.startsWith("/orgs/{org_id}") || - url.startsWith("/groups/{group_id}"), + !url.startsWith("/orgs/{org_id}") && + !url.startsWith("/groups/{group_id}"), ); expect( - tenantUrls, + untenantedUrls, `expected support for org or group tenant`, - ).to.have.lengthOf(paths.length); + ).to.have.lengthOf(0); }, ); }, diff --git a/src/rulesets/tests/__snapshots__/specification.test.ts.snap b/src/rulesets/tests/__snapshots__/specification.test.ts.snap index f6d6f6a6..aac86dbb 100644 --- a/src/rulesets/tests/__snapshots__/specification.test.ts.snap +++ b/src/rulesets/tests/__snapshots__/specification.test.ts.snap @@ -38,7 +38,7 @@ Object { "condition": "have an org or group tenant", "docsLink": "https://github.com/snyk/sweater-comb/blob/main/docs/standards.md#organization-and-group-tenants-for-resources", "effectiveOnDate": 2021-07-01T00:00:00.000Z, - "error": "expected support for org or group tenant: expected [ '/groups/{group_id}/thing' ] to have a length of 2 but got 1", + "error": "expected support for org or group tenant: expected [ '/bad-tenant' ] to have a length of +0 but got 1", "isMust": true, "isShould": false, "passed": false, @@ -86,7 +86,7 @@ Object { "condition": "have an org or group tenant", "docsLink": "https://github.com/snyk/sweater-comb/blob/main/docs/standards.md#organization-and-group-tenants-for-resources", "effectiveOnDate": 2021-07-01T00:00:00.000Z, - "error": "expected support for org or group tenant: expected [ '/orgs/{org_id}/thing' ] to have a length of 2 but got 1", + "error": "expected support for org or group tenant: expected [ '/bad-tenant' ] to have a length of +0 but got 1", "isMust": true, "isShould": false, "passed": false, @@ -133,7 +133,7 @@ Object { "condition": "have an org or group tenant", "docsLink": "https://github.com/snyk/sweater-comb/blob/main/docs/standards.md#organization-and-group-tenants-for-resources", "effectiveOnDate": 2021-07-01T00:00:00.000Z, - "error": "expected support for org or group tenant: expected [] to have a length of 1 but got +0", + "error": "expected support for org or group tenant: expected [ '' ] to have a length of +0 but got 1", "isMust": true, "isShould": false, "passed": false, @@ -180,7 +180,7 @@ Object { "condition": "have an org or group tenant", "docsLink": "https://github.com/snyk/sweater-comb/blob/main/docs/standards.md#organization-and-group-tenants-for-resources", "effectiveOnDate": 2021-07-01T00:00:00.000Z, - "error": "expected support for org or group tenant: expected [] to have a length of 1 but got +0", + "error": "expected support for org or group tenant: expected [ '/group/{group_id}' ] to have a length of +0 but got 1", "isMust": true, "isShould": false, "passed": false, @@ -273,7 +273,7 @@ Object { "condition": "have an org or group tenant", "docsLink": "https://github.com/snyk/sweater-comb/blob/main/docs/standards.md#organization-and-group-tenants-for-resources", "effectiveOnDate": 2021-07-01T00:00:00.000Z, - "error": "expected support for org or group tenant: expected [] to have a length of 1 but got +0", + "error": "expected support for org or group tenant: expected [ '/groups/thing' ] to have a length of +0 but got 1", "isMust": true, "isShould": false, "passed": false, @@ -320,7 +320,7 @@ Object { "condition": "have an org or group tenant", "docsLink": "https://github.com/snyk/sweater-comb/blob/main/docs/standards.md#organization-and-group-tenants-for-resources", "effectiveOnDate": 2021-07-01T00:00:00.000Z, - "error": "expected support for org or group tenant: expected [] to have a length of 1 but got +0", + "error": "expected support for org or group tenant: expected [ '/org/{org_id}' ] to have a length of +0 but got 1", "isMust": true, "isShould": false, "passed": false, @@ -413,7 +413,7 @@ Object { "condition": "have an org or group tenant", "docsLink": "https://github.com/snyk/sweater-comb/blob/main/docs/standards.md#organization-and-group-tenants-for-resources", "effectiveOnDate": 2021-07-01T00:00:00.000Z, - "error": "expected support for org or group tenant: expected [] to have a length of 1 but got +0", + "error": "expected support for org or group tenant: expected [ '/orgs/thing' ] to have a length of +0 but got 1", "isMust": true, "isShould": false, "passed": false, @@ -460,7 +460,7 @@ Object { "condition": "have an org or group tenant", "docsLink": "https://github.com/snyk/sweater-comb/blob/main/docs/standards.md#organization-and-group-tenants-for-resources", "effectiveOnDate": 2021-07-01T00:00:00.000Z, - "error": "expected support for org or group tenant: expected [] to have a length of 1 but got +0", + "error": "expected support for org or group tenant: expected [ '/thing' ] to have a length of +0 but got 1", "isMust": true, "isShould": false, "passed": false,