diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index a565545..45dd171 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -18,10 +18,10 @@ jobs: with: fetch-depth: 0 - - name: Setup Deno v2.0.0 + - name: Setup Deno v2.1.4 uses: denoland/setup-deno@v1 with: - deno-version: v2.0.0 + deno-version: v2.1.4 - name: Setup LCOV run: sudo apt install -y lcov @@ -35,11 +35,8 @@ jobs: - name: Run tests and coverage run: deno task cover - - name: Fix LCOV output for SonarCloud - run: sed -i 's@'$GITHUB_WORKSPACE'@/github/workspace/@g' coverage/report.lcov - - name: SonarCloud Scan - uses: sonarsource/sonarcloud-github-action@master + uses: sonarsource/sonarqube-scan-action@v4.1.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/re-release.yml b/.github/workflows/re-release.yml index 548d058..47ab04f 100644 --- a/.github/workflows/re-release.yml +++ b/.github/workflows/re-release.yml @@ -21,10 +21,10 @@ jobs: fetch-depth: 0 ref: ${{ github.event.inputs.tag }} - - name: Setup Deno v2.0.0 + - name: Setup Deno v2.1.4 uses: denoland/setup-deno@v1 with: - deno-version: v2.0.0 + deno-version: v2.1.4 - name: Verify formatting run: deno task fmt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3d75201..001e50d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,10 +16,10 @@ jobs: with: fetch-depth: 0 - - name: Setup Deno v2.0.0 + - name: Setup Deno v2.1.4 uses: denoland/setup-deno@v1 with: - deno-version: v2.0.0 + deno-version: v2.1.4 - name: Verify formatting run: deno task fmt diff --git a/Dockerfile b/Dockerfile index 259ca34..57f0cd6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM denoland/deno:alpine-2.0.0 +FROM denoland/deno:alpine-2.1.4 ENV APP_HOME=/home/app WORKDIR $APP_HOME diff --git a/deno.lock b/deno.lock index 5ece2ee..f9eb7f4 100644 --- a/deno.lock +++ b/deno.lock @@ -6,6 +6,7 @@ "jsr:@oak/oak@16.1.0": "16.1.0", "jsr:@oak/oak@17.0.0": "17.0.0", "jsr:@oak/oak@17.1.0": "17.1.0", + "jsr:@oak/oak@17.1.3": "17.1.3", "jsr:@std/assert@0.223": "0.223.0", "jsr:@std/assert@0.224": "0.224.0", "jsr:@std/assert@0.226": "0.226.0", @@ -19,12 +20,14 @@ "jsr:@std/crypto@1": "1.0.3", "jsr:@std/dotenv@0.225.1": "0.225.1", "jsr:@std/dotenv@0.225.2": "0.225.2", + "jsr:@std/dotenv@0.225.3": "0.225.3", "jsr:@std/encoding@0.223": "0.223.0", "jsr:@std/encoding@1": "1.0.5", "jsr:@std/encoding@1.0.0-rc.2": "1.0.0-rc.2", "jsr:@std/encoding@^1.0.5": "1.0.5", "jsr:@std/fmt@1.0.1": "1.0.1", "jsr:@std/fmt@1.0.2": "1.0.2", + "jsr:@std/fmt@1.0.3": "1.0.3", "jsr:@std/http@0.223": "0.223.0", "jsr:@std/http@0.224": "0.224.5", "jsr:@std/http@1": "1.0.6", @@ -103,6 +106,20 @@ "npm:path-to-regexp" ] }, + "@oak/oak@17.1.3": { + "integrity": "d89296c22db91681dd3a2a1e1fd14e258d0d5a9654de55637aee5b661c159f33", + "dependencies": [ + "jsr:@oak/commons@1", + "jsr:@std/assert@1", + "jsr:@std/bytes@1", + "jsr:@std/crypto@1", + "jsr:@std/http@1", + "jsr:@std/io@0.224", + "jsr:@std/media-types@1", + "jsr:@std/path@1", + "npm:path-to-regexp" + ] + }, "@std/assert@0.223.0": { "integrity": "eb8d6d879d76e1cc431205bd346ed4d88dc051c6366365b1af47034b0670be24" }, @@ -146,6 +163,9 @@ "@std/dotenv@0.225.2": { "integrity": "e2025dce4de6c7bca21dece8baddd4262b09d5187217e231b033e088e0c4dd23" }, + "@std/dotenv@0.225.3": { + "integrity": "a95e5b812c27b0854c52acbae215856d9cce9d4bbf774d938c51d212711e8d4a" + }, "@std/encoding@0.223.0": { "integrity": "2b5615a75e00337ce113f34cf2f9b8c18182c751a8dcc8b1a2c2fc0e117bef00" }, @@ -161,6 +181,9 @@ "@std/fmt@1.0.2": { "integrity": "87e9dfcdd3ca7c066e0c3c657c1f987c82888eb8103a3a3baa62684ffeb0f7a7" }, + "@std/fmt@1.0.3": { + "integrity": "97765c16aa32245ff4e2204ecf7d8562496a3cb8592340a80e7e554e0bb9149f" + }, "@std/http@0.223.0": { "integrity": "15ab8a0c5a7e9d5be017a15b01600f20f66602ceec48b378939fa24fcec522aa", "dependencies": [ diff --git a/src/deps.ts b/src/deps.ts index ab1ed88..9c011f1 100644 --- a/src/deps.ts +++ b/src/deps.ts @@ -1,6 +1,6 @@ -export { Application, Context, Router } from 'jsr:@oak/oak@17.1.0'; -export type { Middleware, Next } from 'jsr:@oak/oak@17.1.0'; -export { load } from 'jsr:@std/dotenv@0.225.2'; -export { bold, cyan, green } from 'jsr:@std/fmt@1.0.2/colors'; +export { Application, Context, Router } from 'jsr:@oak/oak@17.1.3'; +export type { Middleware, Next } from 'jsr:@oak/oak@17.1.3'; +export { load } from 'jsr:@std/dotenv@0.225.3'; +export { bold, cyan, green } from 'jsr:@std/fmt@1.0.3/colors'; export { type Output, Skimming } from 'jsr:@trackerforce/skimming@1.2.1'; export { ValidatorFn, ValidatorMiddleware } from 'jsr:@trackerforce/validator4oak@1.1.0'; diff --git a/test/deps.ts b/test/deps.ts index 0c3de3d..bbd8f07 100644 --- a/test/deps.ts +++ b/test/deps.ts @@ -1,5 +1,5 @@ -export { type Middleware, testing } from 'jsr:@oak/oak@17.1.0'; -export { assert, assertEquals, assertFalse, assertObjectMatch } from 'jsr:@std/assert@1.0.5'; +export { type Middleware, testing } from 'jsr:@oak/oak@17.1.3'; +export { assert, assertEquals, assertFalse, assertObjectMatch } from 'jsr:@std/assert@1.0.9'; export { type IResponse, superoak } from 'https://deno.land/x/superoak@4.8.1/mod.ts'; // Fixes superdeno@4.9.0 issue diff --git a/test/routes/searchdocs.functional.test.ts b/test/routes/searchdocs.functional.test.ts index 732a090..6d77728 100644 --- a/test/routes/searchdocs.functional.test.ts +++ b/test/routes/searchdocs.functional.test.ts @@ -3,11 +3,16 @@ import { SearchDocsQueryParams } from '../../src/dto/request.ts'; import type { SearchDocsResponseDto } from '../../src/dto/response.ts'; import { assert, assertEquals, type IResponse, superoak } from '../deps.ts'; -Deno.test({ - name: 'SearchDocs route - it should return search results from cache on second request', - async fn() { +const testBody = (fn: (t: Deno.TestContext) => void | Promise) => { + return async (t: Deno.TestContext) => { Deno.env.set('APP_URL', `file:///${Deno.cwd()}/test/fixtures/`); + await fn(t); + } +}; +Deno.test({ + name: 'SearchDocs route - it should return search results from cache on second request', + fn: testBody(async () => { const searchParams = new URLSearchParams(); searchParams.append(SearchDocsQueryParams.query, 'Skimming'); @@ -30,14 +35,12 @@ Deno.test({ assertResponse(response); responseDto = response.body as SearchDocsResponseDto; assertEquals(responseDto.results[0].cache, true); - }, + }), }); Deno.test({ name: 'SearchDocs route - it should return search results from remote on second request - skipCache', - async fn() { - Deno.env.set('APP_URL', `file:///${Deno.cwd()}/test/fixtures/`); - + fn: testBody(async () => { const searchParams = new URLSearchParams(); searchParams.append(SearchDocsQueryParams.query, 'Skimming'); searchParams.append(SearchDocsQueryParams.skipCache, 'true'); @@ -61,7 +64,7 @@ Deno.test({ assertResponse(response); responseDto = response.body as SearchDocsResponseDto; assertEquals(responseDto.results[0].cache, false); - }, + }), }); function assertResponse(response: IResponse) {