1
0
mirror of https://github.com/oceanprotocol-archive/squid-js.git synced 2024-02-02 15:31:51 +01:00
squid-js/test/utils/SignatureHelpers.test.ts

59 lines
1.8 KiB
TypeScript
Raw Normal View History

2019-02-04 18:13:54 +01:00
import { assert, expect, spy, use } from "chai"
import * as spies from "chai-spies"
import ConfigProvider from "../../src/ConfigProvider"
2019-02-04 18:13:54 +01:00
import Web3Provider from "../../src/keeper/Web3Provider"
import { signText, verifyText } from "../../src/utils/SignatureHelpers"
import config from "../config"
2019-02-04 18:13:54 +01:00
use(spies)
describe("SignatureHelpers", () => {
2019-02-04 18:13:54 +01:00
const publicKey = `0x${"a".repeat(40)}`
const text = "0123456789abcde"
2019-02-04 18:13:54 +01:00
const signature = `0x${"a".repeat(130)}`
before(async () => {
ConfigProvider.setConfig(config)
})
2019-02-04 16:26:56 +01:00
afterEach(() => {
spy.restore()
})
describe("#signText", () => {
let personalSignSpy
beforeEach(() => {
const web3 = Web3Provider.getWeb3()
2019-02-04 18:13:54 +01:00
personalSignSpy = spy.on(web3.eth.personal, "sign", () => signature)
})
it("should sign a text as expected", async () => {
const signed = await signText(text, publicKey)
assert.equal(signed, signature)
expect(personalSignSpy).to.have.been.called.with(text, publicKey)
})
it("should sign a text as expected using password", async () => {
2019-02-04 18:13:54 +01:00
const signed = await signText(text, publicKey, "test")
assert.equal(signed, signature)
2019-02-04 18:13:54 +01:00
expect(personalSignSpy).to.have.been.called.with(text, publicKey, "test")
})
})
describe("#verifyText", () => {
it("should recover the privateKey of a signed message", async () => {
const web3 = Web3Provider.getWeb3()
2019-02-04 18:13:54 +01:00
const personalRecoverSpy = spy.on(web3.eth.personal, "ecRecover", () => publicKey)
const verifiedPublicKey = await verifyText(text, signature)
assert.equal(publicKey, verifiedPublicKey)
expect(personalRecoverSpy).to.have.been.called.with(text, signature)
})
})
})