From 0db3f06b2d64ac8610cb6b7781a274a280273d50 Mon Sep 17 00:00:00 2001 From: "Valentin D. Pinkman" Date: Fri, 15 Nov 2024 16:06:12 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=9A=20(dmk):=20Fix=20missing=20Connect?= =?UTF-8?q?UseCase=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/merge_queue.yml | 4 ++-- .github/workflows/pull_request.yml | 4 ++-- package.json | 1 + .../service/DefaultDeviceSessionService.test.ts | 15 ++++----------- .../discovery/use-case/ConnectUseCase.test.ts | 7 +++++++ turbo.json | 8 ++++++++ 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/.github/workflows/merge_queue.yml b/.github/workflows/merge_queue.yml index 5010d766f..35f13c7ca 100644 --- a/.github/workflows/merge_queue.yml +++ b/.github/workflows/merge_queue.yml @@ -12,7 +12,7 @@ concurrency: jobs: checks: name: Run health check and unit tests - runs-on: ubuntu-latest + runs-on: ledgerhq-device-sdk steps: - uses: actions/checkout@v4 @@ -25,4 +25,4 @@ jobs: - name: Tests id: unit-tests if: ${{ steps.health-check.conclusion == 'success' }} - run: pnpm test + run: pnpm test -- -- --maxWorkers=50% diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 93c652893..04293c013 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -51,10 +51,10 @@ jobs: - name: Tests id: unit-tests if: ${{ steps.health-check.conclusion == 'success' }} - run: pnpm test:coverage -- --max-warnings=0 + run: pnpm test:coverage -- --maxWorkers=50% - uses: sonarsource/sonarqube-scan-action@v4 - if: ${{ steps.unit-tests.conclusion == 'success' && github.actor != 'dependabot[bot]' && github.event.pull_request.head.repo.fork == 'false' }} + if: ${{ steps.unit-tests.conclusion == 'success' && github.actor != 'dependabot[bot]' && !github.event.pull_request.head.repo.fork }} env: SONAR_TOKEN: ${{ secrets.PUBLIC_GREEN_SONAR_TOKEN }} SONAR_HOST_URL: ${{ secrets.PUBLIC_SONAR_HOST_URL }} diff --git a/package.json b/package.json index 6b84439c7..1bc3676eb 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "private": true, "license": "Apache-2.0", "scripts": { + "clean": "rimraf -g **/.turbo **/.next **/coverage", "build": "turbo run build", "build:libs": "turbo run build --filter=./packages/**", "dev": "turbo run dev", diff --git a/packages/device-management-kit/src/internal/device-session/service/DefaultDeviceSessionService.test.ts b/packages/device-management-kit/src/internal/device-session/service/DefaultDeviceSessionService.test.ts index 728541b39..404e4093a 100644 --- a/packages/device-management-kit/src/internal/device-session/service/DefaultDeviceSessionService.test.ts +++ b/packages/device-management-kit/src/internal/device-session/service/DefaultDeviceSessionService.test.ts @@ -38,47 +38,44 @@ describe("DefaultDeviceSessionService", () => { ); }); + afterEach(() => { + deviceSession.close(); + }); + it("should have an empty sessions list", () => { expect(sessionService.getDeviceSessions()).toEqual([]); - deviceSession.close(); }); it("should add a deviceSession", () => { sessionService.addDeviceSession(deviceSession); - deviceSession.close(); expect(sessionService.getDeviceSessions()).toEqual([deviceSession]); }); it("should not add a deviceSession if it already exists", () => { sessionService.addDeviceSession(deviceSession); sessionService.addDeviceSession(deviceSession); - deviceSession.close(); expect(sessionService.getDeviceSessions()).toEqual([deviceSession]); }); it("should remove a deviceSession", () => { sessionService.addDeviceSession(deviceSession); - deviceSession.close(); sessionService.removeDeviceSession(deviceSession.id); expect(sessionService.getDeviceSessions()).toEqual([]); }); it("should not remove a deviceSession if it does not exist", () => { - deviceSession.close(); sessionService.removeDeviceSession(deviceSession.id); expect(sessionService.getDeviceSessions()).toEqual([]); }); it("should get a deviceSession", () => { sessionService.addDeviceSession(deviceSession); - deviceSession.close(); expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual( Either.of(deviceSession), ); }); it("should not get a deviceSession if it does not exist", () => { - deviceSession.close(); expect(sessionService.getDeviceSessionById(deviceSession.id)).toEqual( Left(new DeviceSessionNotFound()), ); @@ -86,7 +83,6 @@ describe("DefaultDeviceSessionService", () => { it("should get all sessions", () => { sessionService.addDeviceSession(deviceSession); - deviceSession.close(); expect(sessionService.getDeviceSessions()).toEqual([deviceSession]); }); @@ -94,7 +90,6 @@ describe("DefaultDeviceSessionService", () => { expect(sessionService.sessionsObs).toBeInstanceOf( Observable, ); - deviceSession.close(); }); it("should emit new session", (done) => { @@ -106,7 +101,6 @@ describe("DefaultDeviceSessionService", () => { }, }); sessionService.addDeviceSession(deviceSession); - deviceSession.close(); }); it("should emit previous added session", () => { @@ -124,7 +118,6 @@ describe("DefaultDeviceSessionService", () => { emittedSessions.push(emittedDeviceSession); }, }); - deviceSession.close(); lastDeviceSession.close(); expect(emittedSessions).toEqual([deviceSession, lastDeviceSession]); subscription.unsubscribe(); diff --git a/packages/device-management-kit/src/internal/discovery/use-case/ConnectUseCase.test.ts b/packages/device-management-kit/src/internal/discovery/use-case/ConnectUseCase.test.ts index cdeb03f85..87c60167d 100644 --- a/packages/device-management-kit/src/internal/discovery/use-case/ConnectUseCase.test.ts +++ b/packages/device-management-kit/src/internal/discovery/use-case/ConnectUseCase.test.ts @@ -57,6 +57,12 @@ describe("ConnectUseCase", () => { managerApi = new DefaultManagerApiService(managerApiDataSource); }); + afterEach(() => { + for (const session of sessionService.getDeviceSessions()) { + sessionService.removeDeviceSession(session.id); + } + }); + afterAll(() => { jest.restoreAllMocks(); }); @@ -94,5 +100,6 @@ describe("ConnectUseCase", () => { device: stubDiscoveredDevice, }); expect(sessionId).toBe(fakeSessionId); + sessionService.removeDeviceSession(sessionId); }); }); diff --git a/turbo.json b/turbo.json index 22ffdaaf4..cd6205964 100644 --- a/turbo.json +++ b/turbo.json @@ -41,6 +41,14 @@ "dependsOn": ["^build", "^typecheck"], "outputs": [] }, + "@ledgerhq/device-management-kit-sample#typecheck": { + "dependsOn": ["build", "^typecheck"], + "outputs": [] + }, + "@ledgerhq/ledger-dmk-docs#typecheck": { + "dependsOn": ["build", "^typecheck"], + "outputs": [] + }, "health-check": { "dependsOn": ["build", "prettier", "lint", "typecheck"] }