lit-siwe
Version:
Sign-In with Ethereum
43 lines (42 loc) • 2.55 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const parsingPositive = require("../../../test/parsing_positive.json");
const validationPositive = require("../../../test/validation_positive.json");
const validationNegative = require("../../../test/validation_negative.json");
// import { Wallet } from 'ethers';
const wallet_1 = require("@ethersproject/wallet");
const client_1 = require("./client");
describe(`Message Generation`, () => {
test.concurrent.each(Object.entries(parsingPositive))("Generates message successfully: %s", (_, test) => {
const msg = new client_1.SiweMessage(test.fields);
expect(msg.toMessage()).toBe(test.message);
});
});
describe(`Message Validation`, () => {
test.concurrent.each(Object.entries(validationPositive))("Validates message successfully: %s", (_, test_fields) => __awaiter(void 0, void 0, void 0, function* () {
const msg = new client_1.SiweMessage(test_fields);
yield expect(msg.validate(test_fields.signature)).resolves.not.toThrow();
}));
test.concurrent.each(Object.entries(validationNegative))("Fails to validate message: %s", (_, test_fields) => __awaiter(void 0, void 0, void 0, function* () {
const msg = new client_1.SiweMessage(test_fields);
yield expect(msg.validate(test_fields.signature)).rejects.toThrow();
}));
});
describe(`Round Trip`, () => {
let wallet = wallet_1.Wallet.createRandom();
test.concurrent.each(Object.entries(parsingPositive))("Generates a Successfully Verifying message: %s", (_, test) => __awaiter(void 0, void 0, void 0, function* () {
const msg = new client_1.SiweMessage(test.fields);
msg.address = wallet.address;
const signature = yield wallet.signMessage(msg.toMessage());
yield expect(msg.validate(signature)).resolves.not.toThrow();
}));
});