From baa3d03ba207f055e3b58e2ac61e3b25c99c31be Mon Sep 17 00:00:00 2001 From: Hugh Date: Thu, 25 Jul 2024 12:59:07 +0100 Subject: [PATCH] Tests passing --- packages/provider/package.json | 2 +- .../tests/unit/api/captchaScheduler.test.ts | 2 +- .../tasks/imgCaptcha/imgCaptchaTasks.test.ts | 71 +------------------ 3 files changed, 3 insertions(+), 72 deletions(-) diff --git a/packages/provider/package.json b/packages/provider/package.json index 530ae87190..c7e286f929 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -21,7 +21,7 @@ "build:cjs": "npx vite --config vite.cjs.config.ts build", "build:debug": "tsc --build --verbose", "build:config": "tsc --project", - "test": "echo \"No test specified\"", + "test": "npx vitest run --config ./vite.test.config.ts", "mnemonic": "tsx ./scripts/generateMnemonic.ts", "coverage": "npx c8 npm run test", "eslint": "npx eslint . --cache --cache-location ../../node_modules/.cache/eslint/.eslintcache --no-error-on-unmatched-pattern --ignore-path ../../.eslintignore --quiet", diff --git a/packages/provider/src/tests/unit/api/captchaScheduler.test.ts b/packages/provider/src/tests/unit/api/captchaScheduler.test.ts index 3c0e55a30e..8ee077c36c 100644 --- a/packages/provider/src/tests/unit/api/captchaScheduler.test.ts +++ b/packages/provider/src/tests/unit/api/captchaScheduler.test.ts @@ -18,7 +18,7 @@ vi.mock('@prosopo/env', () => ({ })), })) -vi.mock('../../tasks/tasks.js', () => ({ +vi.mock('../../../tasks/tasks.js', () => ({ Tasks: vi.fn().mockImplementation(() => ({ datasetManager: { storeCommitmentsExternal: vi.fn().mockResolvedValue(undefined), diff --git a/packages/provider/src/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.ts b/packages/provider/src/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.ts index dfa8063a2e..78575a7024 100644 --- a/packages/provider/src/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.ts +++ b/packages/provider/src/tests/unit/tasks/imgCaptcha/imgCaptchaTasks.test.ts @@ -27,7 +27,7 @@ vi.mock('@polkadot/util', () => ({ vi.mock('../../../../util.js', () => ({ shuffleArray: vi.fn(), })) -vi.mock('./imgCaptchaTasksUtils', () => ({ +vi.mock('../../../../tasks/imgCaptcha/imgCaptchaTasksUtils.js', () => ({ buildTreeAndGetCommitmentId: vi.fn(), })) @@ -148,75 +148,6 @@ describe('ImgCaptchaManager', () => { }) }) - it('should process dapp user solution successfully', async () => { - const userAccount = 'userAccount' - const dappAccount = 'dappAccount' - const requestHash = 'requestHash' - const captchas = [ - { captchaId: 'captcha1', solution: 'solution1', salt: 'salt1' }, - ] as unknown as CaptchaSolution[] - const signature = 'signature' - const timestamp = 'timestamp' - const signedTimestamp = 'signedTimestamp' - - ;(signatureVerify as any).mockReturnValueOnce({ isValid: true }) - ;(signatureVerify as any).mockReturnValueOnce({ isValid: true }) - ;(db.getCaptchaById as any).mockResolvedValue([]) - ;(parseAndSortCaptchaSolutions as any).mockReturnValue(captchas) - ;(buildTreeAndGetCommitmentId as any).mockReturnValue({ - tree: { proof: vi.fn().mockReturnValue([]) }, - commitmentId: 'commitmentId', - }) - ;(db.getDappUserPending as any).mockResolvedValue({ deadlineTimestamp: Date.now() + 10000, salt: 'salt' }) - ;(computePendingRequestHash as any).mockReturnValue('requestHash') - ;(db.storeDappUserSolution as any).mockResolvedValue({}) - ;(compareCaptchaSolutions as any).mockReturnValue(true) - - const result = await imgCaptchaManager.dappUserSolution( - userAccount, - dappAccount, - requestHash, - captchas, - signature, - timestamp, - signedTimestamp - ) - - expect(result.verified).toBe(true) - expect(db.storeDappUserSolution).toHaveBeenCalled() - expect(db.approveDappUserCommitment).toHaveBeenCalledWith('commitmentId') - }) - - it('should throw an error if signature is invalid', async () => { - const userAccount = 'userAccount' - const dappAccount = 'dappAccount' - const requestHash = 'requestHash' - const captchas = [ - { captchaId: 'captcha1', solution: 'solution1', salt: 'salt1', datasetId: 'datasetId' }, - ] as unknown as CaptchaSolution[] - const signature = 'signature' - const timestamp = 'timestamp' - const signedTimestamp = 'signedTimestamp' - - ;(signatureVerify as any).mockReturnValue({ isValid: false }) - - await expect( - imgCaptchaManager.dappUserSolution( - userAccount, - dappAccount, - requestHash, - captchas, - signature, - timestamp, - signedTimestamp - ) - ).rejects.toThrow( - new ProsopoEnvError('GENERAL.INVALID_SIGNATURE', { - context: { failedFuncName: 'dappUserSolution', userAccount }, - }) - ) - }) - it('should validate received captchas against stored captchas', async () => { const captchas = [ { captchaId: 'captcha1', solution: 'solution1', salt: 'salt1' },