From 807e7abf9fc28b023182387c433970eb3fe61696 Mon Sep 17 00:00:00 2001 From: Johannes Rudolph Date: Mon, 23 Oct 2023 13:45:12 +0200 Subject: [PATCH] test: add a test for parsing compliance control paths --- src/compliance/ComplianceControlParser.test.ts | 16 ++++++++++++++++ src/compliance/ComplianceControlParser.ts | 4 ++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 src/compliance/ComplianceControlParser.test.ts diff --git a/src/compliance/ComplianceControlParser.test.ts b/src/compliance/ComplianceControlParser.test.ts new file mode 100644 index 0000000..5486af8 --- /dev/null +++ b/src/compliance/ComplianceControlParser.test.ts @@ -0,0 +1,16 @@ +import { assertEquals } from "std/testing/assert"; +import { ComplianceControlParser } from "./ComplianceControlParser.ts"; + +Deno.test("parsing with POSIX paths", () => { + const path = "compliance/cfmm/iam/identity-lifecycle-management.md"; + const result = ComplianceControlParser.toId(path); + + assertEquals(result, "cfmm/iam/identity-lifecycle-management"); +}); + +Deno.test("parsing with windows paths", () => { + const path = "compliance\\cfmm\\iam\\identity-lifecycle-management.md"; + const result = ComplianceControlParser.toId(path); + + assertEquals(result, "cfmm/iam/identity-lifecycle-management"); +}); diff --git a/src/compliance/ComplianceControlParser.ts b/src/compliance/ComplianceControlParser.ts index cf2e7fe..30e6a4e 100644 --- a/src/compliance/ComplianceControlParser.ts +++ b/src/compliance/ComplianceControlParser.ts @@ -65,7 +65,7 @@ export class ComplianceControlParser { private async tryParseComplianceControl(mdPath: string) { const relativeMdPath = this.repo.relativePath(mdPath); - const id = this.toId(relativeMdPath); + const id = ComplianceControlParser.toId(relativeMdPath); this.logger.verbose( () => `parsing compliance control ${id} via ${relativeMdPath}`, @@ -88,7 +88,7 @@ export class ComplianceControlParser { }; } - private toId(relativeControlPath: string) { + static toId(relativeControlPath: string) { const posixPath = relativeControlPath.replaceAll("\\", "/"); const components = path.parse(posixPath);