Skip to content

Commit

Permalink
chore: fix lint errors
Browse files Browse the repository at this point in the history
  • Loading branch information
PhearZero committed Apr 26, 2024
1 parent 00c65f9 commit d433b94
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 45 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ import androidUserAgentFixtures from '../__fixtures__/user-agent.android.fixture
import attestationRequestResponseFixtures from './__fixtures__/attestation.request.response.fixtures.json';
import attestationRequestBodyFixtures from './__fixtures__/attestation.request.body.fixtures.json';
import attestationResponseBodyFixtures from './__fixtures__/attestation.response.body.fixtures.json';
// TODO: Response Fixtures
import attestationResponseResponseFixtures from './__fixtures__/attestation.response.response.fixtures.json';
import { join } from "node:path";
describe('AttestationController', () => {
let attestationController: AttestationController;
let userModel: Model<User>;
Expand Down Expand Up @@ -94,7 +92,7 @@ describe('AttestationController', () => {
});
});
it('should fail if liquid extension is not enabled', async () => {
attestationRequestBodyFixtures.forEach((fixture, i) => {
attestationRequestBodyFixtures.forEach((fixture) => {
expect(() =>
attestationController.request({}, {
...fixture,
Expand All @@ -108,7 +106,7 @@ describe('AttestationController', () => {
describe('POST /response', () => {
it('should register a key', async () => {
const session: Record<string, any> = new Session();
authService.addCredential = jest.fn(async (username, credential)=>{
authService.addCredential = jest.fn(async () => {
return attestationResponseResponseFixtures[0];
});
session.challenge = attestationRequestResponseFixtures[0].challenge;
Expand All @@ -124,13 +122,20 @@ describe('AttestationController', () => {
});
it('should set a default device if empty', async () => {
const session: Record<string, any> = new Session();
authService.addCredential = jest.fn(async (username, credential)=>{
authService.addCredential = jest.fn(async () => {
return attestationResponseResponseFixtures[0];
});
session.challenge = attestationRequestResponseFixtures[0].challenge;
session.liquidExtension = true;
const body =
{...attestationResponseBodyFixtures[0], clientExtensionResults: {liquid: {...attestationResponseBodyFixtures[0].clientExtensionResults.liquid, device: null}}} as AttestationCredentialJSONDto;
const body = {
...attestationResponseBodyFixtures[0],
clientExtensionResults: {
liquid: {
...attestationResponseBodyFixtures[0].clientExtensionResults.liquid,
device: null,
},
},
} as AttestationCredentialJSONDto;
const headers = { 'user-agent': androidUserAgentFixtures[0] };
await expect(
attestationController.attestationResponse(session, headers, body),
Expand All @@ -140,7 +145,7 @@ describe('AttestationController', () => {
});
it('should fail if the challenge is not a string', async () => {
await Promise.all(
attestationResponseBodyFixtures.map(async (fixture, i) => {
attestationResponseBodyFixtures.map(async (fixture) => {
const body = fixture as AttestationCredentialJSONDto;
const headers = { 'user-agent': androidUserAgentFixtures[0] };

Expand All @@ -162,7 +167,7 @@ describe('AttestationController', () => {
const body = fixture as AttestationCredentialJSONDto;
const headers = { 'user-agent': androidUserAgentFixtures[0] };
const session = {
challenge: attestationRequestResponseFixtures[0].challenge,
challenge: attestationRequestResponseFixtures[i].challenge,
};
await expect(
attestationController.attestationResponse(session, headers, body),
Expand All @@ -179,7 +184,7 @@ describe('AttestationController', () => {
} as AttestationCredentialJSONDto;
const headers = { 'user-agent': androidUserAgentFixtures[0] };
const session = {
challenge: attestationRequestResponseFixtures[0].challenge,
challenge: attestationRequestResponseFixtures[i].challenge,
liquidExtension: true,
};
await expect(
Expand All @@ -203,7 +208,7 @@ describe('AttestationController', () => {
} as AttestationCredentialJSONDto;
const headers = { 'user-agent': androidUserAgentFixtures[0] };
const session = {
challenge: attestationRequestResponseFixtures[0].challenge,
challenge: attestationRequestResponseFixtures[i].challenge,
liquidExtension: true,
};
await expect(() =>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,35 @@
import { Test, TestingModule } from '@nestjs/testing';
import { AttestationService } from './attestation.service.js';
import { ConfigModule, ConfigService } from "@nestjs/config";
import { ConfigModule, ConfigService } from '@nestjs/config';
import { AppService } from '../app.service.js';

import { AlgodService } from '../algod/algod.service.js';
import configurationFixture from "../__fixtures__/configuration.fixture.json";
import configurationFixture from '../__fixtures__/configuration.fixture.json';

import attestationRequestResponseFixtures from './__fixtures__/attestation.request.response.fixtures.json';
import attestationResponseBodyFixtures from './__fixtures__/attestation.response.body.fixtures.json';


describe('AttestationService', () => {
let provider: AttestationService;
let algodServiceMockFactory = (addr: string)=> ({
accountInformation: jest.fn(()=>{
const algodServiceMockFactory = (addr: string) =>
({
accountInformation: jest.fn(() => {
return {
exclude: jest.fn(()=>{
exclude: jest.fn(() => {
return {
do: jest.fn(()=>{
do: jest.fn(() => {
return {
'auth-addr': addr
}
})
}
})
}
})
} as unknown as AlgodService);
let currentMock = algodServiceMockFactory("24FEVK3D3VPVHP2MHVTZZSP6PINKW7PGPYTFHLO6X6LV4VNFWDTM6AQI7U")
'auth-addr': addr,
};
}),
};
}),
};
}),
}) as unknown as AlgodService;
let currentMock = algodServiceMockFactory(
'24FEVK3D3VPVHP2MHVTZZSP6PINKW7PGPYTFHLO6X6LV4VNFWDTM6AQI7U',
);

beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
Expand All @@ -54,25 +56,50 @@ describe('AttestationService', () => {
expect(provider).toBeDefined();
});

it('should validate a signature', ()=>{
it('should validate a signature', () => {
attestationResponseBodyFixtures.forEach((fixture, i) => {
const liquid = fixture.clientExtensionResults.liquid
expect(provider.verify(currentMock, liquid.type, attestationRequestResponseFixtures[i].challenge, liquid.signature, liquid.address)).resolves.toEqual(true);
})
})
it('should validate a rekeyed address', ()=>{
const liquid = fixture.clientExtensionResults.liquid;
expect(
provider.verify(
currentMock,
liquid.type,
attestationRequestResponseFixtures[i].challenge,
liquid.signature,
liquid.address,
),
).resolves.toEqual(true);
});
});
it('should validate a rekeyed address', () => {
attestationResponseBodyFixtures.forEach((fixture, i) => {
const rekeyAddress = "24FEVK3D3VPVHP2MHVTZZSP6PINKW7PGPYTFHLO6X6LV4VNFWDTM6AQI7U"
const liquid = fixture.clientExtensionResults.liquid
currentMock = algodServiceMockFactory(liquid.address)
expect(provider.verify(currentMock, liquid.type, attestationRequestResponseFixtures[i].challenge, liquid.signature, rekeyAddress)).resolves.toEqual(true);
})
})
it('should fail to validate unsupported signatures',()=>{
const rekeyAddress =
'24FEVK3D3VPVHP2MHVTZZSP6PINKW7PGPYTFHLO6X6LV4VNFWDTM6AQI7U';
const liquid = fixture.clientExtensionResults.liquid;
currentMock = algodServiceMockFactory(liquid.address);
expect(
provider.verify(
currentMock,
liquid.type,
attestationRequestResponseFixtures[i].challenge,
liquid.signature,
rekeyAddress,
),
).resolves.toEqual(true);
});
});
it('should fail to validate unsupported signatures', () => {
attestationResponseBodyFixtures.forEach((fixture, i) => {
const liquid = fixture.clientExtensionResults.liquid
currentMock = algodServiceMockFactory(liquid.address)
expect(provider.verify(currentMock, "unknown", attestationRequestResponseFixtures[i].challenge, liquid.signature, liquid.address)).resolves.toEqual(false);
})
})
const liquid = fixture.clientExtensionResults.liquid;
currentMock = algodServiceMockFactory(liquid.address);
expect(
provider.verify(
currentMock,
'unknown',
attestationRequestResponseFixtures[i].challenge,
liquid.signature,
liquid.address,
),
).resolves.toEqual(false);
});
});
});

0 comments on commit d433b94

Please sign in to comment.