diff --git a/.github/workflows/deno.yml b/.github/workflows/deno.yml deleted file mode 100644 index deff90e..0000000 --- a/.github/workflows/deno.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Deno CI - -on: - push: - branches: [main] - pull_request: - branches: [main] - workflow_dispatch: - -jobs: - test: - runs-on: ubuntu-latest - - strategy: - matrix: - deno-version: ["v1.x"] - - steps: - - name: Git Checkout Deno Module - uses: actions/checkout@v4 - - name: Use Deno Version ${{ matrix.deno-version }} - uses: denoland/setup-deno@v1 - with: - deno-version: ${{ matrix.deno-version }} - - name: Test Deno Formatting - run: deno fmt --check - - name: Test Deno Linting - run: deno lint - - name: Test Deno Module - run: deno test - - name: Build npm module - run: deno task build \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..5dc2dd5 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,21 @@ +on: + push: + branches: [main, dev] + pull_request: + branches: [main, dev] + +jobs: + deno_ci: + uses: cross-org/workflows/.github/workflows/deno-ci.yml@main + with: + entrypoint: src/base64.ts + lint_docs: false + bun_ci: + uses: cross-org/workflows/.github/workflows/bun-ci.yml@main + with: + jsr_dependencies: "@cross/test @std/assert" + node_ci: + uses: cross-org/workflows/.github/workflows/node-ci.yml@main + with: + test_target: "test/*.test.ts" + jsr_dependencies: "@cross/test @std/assert" \ No newline at end of file diff --git a/deno.json b/deno.json index 1dbf157..b55bf56 100644 --- a/deno.json +++ b/deno.json @@ -23,6 +23,8 @@ }, "imports": { "@cross/fs": "jsr:@cross/fs@^0.1.11", + "@cross/test": "jsr:@cross/test@^0.0.9", + "@std/assert": "jsr:@std/assert@^1.0.6", "@std/path": "jsr:@std/path@^1.0.6", "esbuild": "npm:esbuild@^0.24.0", "esbuild-plugin-d.ts": "npm:esbuild-plugin-d.ts@^1.3.0" diff --git a/tests/base64.test.ts b/tests/base64.test.ts index 65155d0..3fd975b 100644 --- a/tests/base64.test.ts +++ b/tests/base64.test.ts @@ -1,58 +1,60 @@ -import { assertEquals } from "jsr:@std/assert@1.0.2"; +import { assertEquals } from "@std/assert"; +import { test } from "@cross/test"; + import { base64 } from "../src/base64.ts"; -Deno.test("Encode 'Hello world'", function () { +test("Encode 'Hello world'", function () { const result = base64.fromString("Hello world"); assertEquals(result, "SGVsbG8gd29ybGQ="); }); -Deno.test("Decode 'Hello world'", function () { +test("Decode 'Hello world'", function () { const result = base64.toString("SGVsbG8gd29ybGQ="); assertEquals(result, "Hello world"); }); // Basic string base64url -Deno.test("Encode 'Hello world' in base64url mode", function () { +test("Encode 'Hello world' in base64url mode", function () { const result = base64.fromString("Hello world", true); assertEquals(result, "SGVsbG8gd29ybGQ"); }); -Deno.test("Decode 'Hello world' in base64url mode", function () { +test("Decode 'Hello world' in base64url mode", function () { const result = base64.toString("SGVsbG8gd29ybGQ", true); assertEquals(result, "Hello world"); }); // UTF-8 string -Deno.test("Encode 'ɸåäd' in base64url mode", function () { +test("Encode 'ɸåäd' in base64url mode", function () { const result = base64.fromString("ɸåäd"); assertEquals(result, "ybjDpcOkZA=="); }); -Deno.test("Decode 'ɸåäd' in base64url mode", function () { +test("Decode 'ɸåäd' in base64url mode", function () { const result = base64.toString("ybjDpcOkZA=="); assertEquals(result, "ɸåäd"); }); // UTF-8 string url mode -Deno.test("Encode 'ɸåäd' in base64url mode", function () { +test("Encode 'ɸåäd' in base64url mode", function () { const result = base64.fromString("ɸåäd", true); assertEquals(result, "ybjDpcOkZA"); }); -Deno.test("Decode 'ɸåäd' in base64url mode", function () { +test("Decode 'ɸåäd' in base64url mode", function () { const result = base64.toString("ybjDpcOkZA", true); assertEquals(result, "ɸåäd"); }); // ArrayBuffer base64 -Deno.test("Encode array buffer", function () { +test("Encode array buffer", function () { const result = base64.fromArrayBuffer( Uint8Array.from([0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]).buffer, ); assertEquals(result, "AAECAwQFBgcI"); }); -Deno.test("Decode array buffer", function () { +test("Decode array buffer", function () { const result = base64.toArrayBuffer("AAECAwQFBgcI"); assertEquals( result, @@ -61,7 +63,7 @@ Deno.test("Decode array buffer", function () { }); // Validate -Deno.test("AAECAwQFBgcI is valid base64 and base64url", function () { +test("AAECAwQFBgcI is valid base64 and base64url", function () { const resultNormal = base64.validate("AAECAwQFBgcI"), resultUrl = base64.validate("AAECAwQFBgcI", true); @@ -69,7 +71,7 @@ Deno.test("AAECAwQFBgcI is valid base64 and base64url", function () { assertEquals(resultUrl, true); }); -Deno.test("SGVsbG8gd29ybGQ= is valid base64 but not base64url", function () { +test("SGVsbG8gd29ybGQ= is valid base64 but not base64url", function () { const resultNormal = base64.validate("SGVsbG8gd29ybGQ="), resultUrl = base64.validate("SGVsbG8gd29ybGQ=", true); @@ -77,14 +79,14 @@ Deno.test("SGVsbG8gd29ybGQ= is valid base64 but not base64url", function () { assertEquals(resultUrl, false); }); -Deno.test("PDw/Pz8+Pg== is valid base64 but not base64url", function () { +test("PDw/Pz8+Pg== is valid base64 but not base64url", function () { const resultNormal = base64.validate("PDw/Pz8+Pg=="), resultUrl = base64.validate("PDw/Pz8+Pg==", true); assertEquals(resultNormal, true); assertEquals(resultUrl, false); }); -Deno.test("c3ViamVjdHM_X2Q9MQ is valid base64 but not base64url", function () { +test("c3ViamVjdHM_X2Q9MQ is valid base64 but not base64url", function () { const resultNormal = base64.validate("c3ViamVjdHM_X2Q9MQ"), resultUrl = base64.validate("c3ViamVjdHM_X2Q9MQ", true); @@ -92,7 +94,7 @@ Deno.test("c3ViamVjdHM_X2Q9MQ is valid base64 but not base64url", function () { assertEquals(resultUrl, true); }); -Deno.test("c3ViamVjdHM_+X2Q9MQ is neither base64 nor base64url", function () { +test("c3ViamVjdHM_+X2Q9MQ is neither base64 nor base64url", function () { const resultNormal = base64.validate("c3ViamVjdHM_+X2Q9MQ"), resultUrl = base64.validate("c3ViamVjdHM_+X2Q9MQ", true);