@zkp2p/reclaim-witness-sdk
Version:
<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>
75 lines • 6.07 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const ethers_1 = require("ethers");
const client_1 = require("../client");
const config_1 = require("../config");
const providers_1 = require("../providers");
const server_1 = require("../server");
const mock_provider_server_1 = require("../tests/mock-provider-server");
const utils_1 = require("../tests/utils");
const utils_2 = require("../utils");
describe('Authentication Tests', () => {
const authKp = ethers_1.ethers.Wallet.createRandom();
let wsServer;
let wsServerUrl;
let claimUrl;
let privateKeyHex;
const wsServerPort = (0, utils_1.getRandomPort)();
const httpsServerPort = (0, utils_1.getRandomPort)();
const mockHttpsServer = (0, mock_provider_server_1.createMockServer)(httpsServerPort);
beforeAll(async () => {
wsServer = await (0, server_1.createServer)(wsServerPort);
wsServerUrl = `ws://localhost:${wsServerPort}${config_1.WS_PATHNAME}`;
process.env.AUTHENTICATION_PUBLIC_KEY = authKp.publicKey;
claimUrl = `https://localhost:${httpsServerPort}/me`;
privateKeyHex = (0, utils_1.randomPrivateKey)();
// we need to disable certificate verification
// for testing purposes
providers_1.providers.http.additionalClientOptions = {
verifyServerCertificate: false
};
});
afterAll(() => {
delete process.env.AUTHENTICATION_PUBLIC_KEY;
wsServer.close();
mockHttpsServer.server.close();
});
it('should fail to create a claim w/o authentication', async () => {
await expect(createClaim(undefined)).rejects.toMatchObject({
message: 'User must be authenticated'
});
});
it('should block claim creation if host not in whitelist', async () => {
const auth = await (0, utils_2.createAuthRequest)({ id: '1234', hostWhitelist: ['api.abcd.com'] }, authKp.privateKey);
await expect(createClaim(auth)).rejects.toMatchObject({
message: 'Host \"localhost\" not allowed by auth request'
});
});
it('should create claim after authentication', async () => {
const auth = await (0, utils_2.createAuthRequest)({ id: '1234', hostWhitelist: ['localhost'] }, authKp.privateKey);
await createClaim(auth);
});
function createClaim(authRequest) {
const user = 'testing-123';
return (0, client_1.createClaimOnAttestor)({
name: 'http',
params: {
url: claimUrl,
method: 'GET',
responseRedactions: [],
responseMatches: [
{
type: 'contains',
value: `${user}@mock.com`
}
]
},
secretParams: {
authorisationHeader: `Bearer ${user}`
},
ownerPrivateKey: privateKeyHex,
client: { url: wsServerUrl, authRequest }
});
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL3Rlc3QuYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUErQjtBQUMvQix1Q0FBa0Q7QUFDbEQsdUNBQXdDO0FBRXhDLDZDQUF5QztBQUN6Qyx1Q0FBeUM7QUFDekMseUVBQWlFO0FBQ2pFLDJDQUFpRTtBQUNqRSxxQ0FBNkM7QUFHN0MsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUVyQyxNQUFNLE1BQU0sR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQzNDLElBQUksUUFBeUIsQ0FBQTtJQUU3QixJQUFJLFdBQW1CLENBQUE7SUFDdkIsSUFBSSxRQUFnQixDQUFBO0lBQ3BCLElBQUksYUFBcUIsQ0FBQTtJQUV6QixNQUFNLFlBQVksR0FBRyxJQUFBLHFCQUFhLEdBQUUsQ0FBQTtJQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFBLHFCQUFhLEdBQUUsQ0FBQTtJQUV2QyxNQUFNLGVBQWUsR0FBRyxJQUFBLHVDQUFnQixFQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRXpELFNBQVMsQ0FBQyxLQUFLLElBQUcsRUFBRTtRQUNuQixRQUFRLEdBQUcsTUFBTSxJQUFBLHFCQUFZLEVBQUMsWUFBWSxDQUFDLENBQUE7UUFDM0MsV0FBVyxHQUFHLGtCQUFrQixZQUFZLEdBQUcsb0JBQVcsRUFBRSxDQUFBO1FBQzVELE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQTtRQUN4RCxRQUFRLEdBQUcscUJBQXFCLGVBQWUsS0FBSyxDQUFBO1FBQ3BELGFBQWEsR0FBRyxJQUFBLHdCQUFnQixHQUFFLENBQUE7UUFFbEMsOENBQThDO1FBQzlDLHVCQUF1QjtRQUN2QixxQkFBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsR0FBRztZQUN4Qyx1QkFBdUIsRUFBRSxLQUFLO1NBQzlCLENBQUE7SUFDRixDQUFDLENBQUMsQ0FBQTtJQUVGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDYixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUE7UUFDNUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2hCLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDL0IsQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsa0RBQWtELEVBQUUsS0FBSyxJQUFHLEVBQUU7UUFDaEUsTUFBTSxNQUFNLENBQ1gsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUN0QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkIsT0FBTyxFQUFFLDRCQUE0QjtTQUNyQyxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQyxzREFBc0QsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUNwRSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEseUJBQWlCLEVBQ25DLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUMvQyxNQUFNLENBQUMsVUFBVSxDQUNqQixDQUFBO1FBRUQsTUFBTSxNQUFNLENBQ1gsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUNqQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFDdkIsT0FBTyxFQUFFLGdEQUFnRDtTQUN6RCxDQUFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUcsRUFBRTtRQUN4RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEseUJBQWlCLEVBQ25DLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUM1QyxNQUFNLENBQUMsVUFBVSxDQUNqQixDQUFBO1FBRUQsTUFBTSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDeEIsQ0FBQyxDQUFDLENBQUE7SUFFRixTQUFTLFdBQVcsQ0FBQyxXQUE4QztRQUNsRSxNQUFNLElBQUksR0FBRyxhQUFhLENBQUE7UUFDMUIsT0FBTyxJQUFBLDhCQUFxQixFQUFDO1lBQzVCLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFO2dCQUNQLEdBQUcsRUFBRSxRQUFRO2dCQUNiLE1BQU0sRUFBRSxLQUFLO2dCQUNiLGtCQUFrQixFQUFFLEVBQUU7Z0JBQ3RCLGVBQWUsRUFBRTtvQkFDaEI7d0JBQ0MsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLEtBQUssRUFBRSxHQUFHLElBQUksV0FBVztxQkFDekI7aUJBQ0Q7YUFDRDtZQUNELFlBQVksRUFBRTtnQkFDYixtQkFBbUIsRUFBRSxVQUFVLElBQUksRUFBRTthQUNyQztZQUNELGVBQWUsRUFBRSxhQUFhO1lBQzlCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO1NBQ3pDLENBQUMsQ0FBQTtJQUNILENBQUM7QUFDRixDQUFDLENBQUMsQ0FBQSJ9
;