mirror of
https://github.com/oceanprotocol-archive/squid-js.git
synced 2024-02-02 15:31:51 +01:00
104 lines
3.0 KiB
TypeScript
104 lines
3.0 KiB
TypeScript
import { assert, expect, spy, use } from "chai"
|
|
import * as spies from "chai-spies"
|
|
|
|
import config from "../config"
|
|
import Account from "../../src/ocean/Account"
|
|
import { Ocean } from "../../src/ocean/Ocean"
|
|
import { OceanAuth } from "../../src/ocean/OceanAuth"
|
|
|
|
use(spies)
|
|
|
|
describe("OceanAuth", () => {
|
|
|
|
let oceanAuth: OceanAuth
|
|
let account: Account
|
|
|
|
before(async () => {
|
|
const ocean = await Ocean.getInstance(config)
|
|
oceanAuth = ocean.auth
|
|
account = (await ocean.accounts.list())[0]
|
|
})
|
|
|
|
afterEach(() => {
|
|
spy.restore()
|
|
})
|
|
|
|
describe("#get()", () => {
|
|
it("should return the token for a account", async () => {
|
|
const token = await oceanAuth.get(account)
|
|
|
|
assert.match(token, /^0x[a-f0-9]{130}-[0-9]{0,14}/i)
|
|
})
|
|
})
|
|
|
|
// Not valid using providers without support for `personal_ecRecover`
|
|
xdescribe("#check()", () => {
|
|
it("should return the account of a signature", async () => {
|
|
const token = await oceanAuth.get(account)
|
|
|
|
const address = await oceanAuth.check(token)
|
|
|
|
assert.equal(address, account.getId())
|
|
})
|
|
|
|
it("should return empty address if the token is expired", async () => {
|
|
const token = [
|
|
"0x0cfe59ce5c35461728b4126431096e4e021a842ca1f679532c537be5f895a3607e498",
|
|
"f2cc22f787f9c7c8a967c346d717ef50ccb9f0af418d87a86dad899e6d61b-1234567890",
|
|
].join("")
|
|
|
|
const address = await oceanAuth.check(token)
|
|
|
|
assert.equal(address, `0x${"0".repeat(40)}`)
|
|
})
|
|
})
|
|
|
|
describe("#store()", () => {
|
|
it("should sign and store the token", async () => {
|
|
const writeTokenSpy = spy.on(oceanAuth as any, "writeToken", () => {})
|
|
|
|
await oceanAuth.store(account)
|
|
|
|
expect(writeTokenSpy).to.has.been.called()
|
|
})
|
|
})
|
|
|
|
describe("#restore()", () => {
|
|
it("should return a stored token", async () => {
|
|
spy.on(oceanAuth as any, "readToken", () => "token")
|
|
spy.on(oceanAuth as any, "check", () => account.getId())
|
|
|
|
const token = await oceanAuth.restore(account)
|
|
|
|
assert.equal(token, "token")
|
|
})
|
|
|
|
it("should not return values if there is any error", async () => {
|
|
spy.on(oceanAuth as any, "readToken", () => "token")
|
|
spy.on(oceanAuth as any, "check", () => "0x...")
|
|
|
|
const token = await oceanAuth.restore(account)
|
|
|
|
assert.isUndefined(token)
|
|
})
|
|
})
|
|
|
|
describe("#isStored()", () => {
|
|
it("should know if the token is stored", async () => {
|
|
spy.on(oceanAuth as any, "restore", () => account.getId())
|
|
|
|
const isStored = await oceanAuth.isStored(account)
|
|
|
|
assert.isTrue(isStored)
|
|
})
|
|
|
|
it("should know if the token is not stored", async () => {
|
|
spy.on(oceanAuth as any, "restore", () => undefined)
|
|
|
|
const isStored = await oceanAuth.isStored(account)
|
|
|
|
assert.isFalse(isStored)
|
|
})
|
|
})
|
|
})
|