mirror of
https://github.com/oceanprotocol-archive/squid-js.git
synced 2024-02-02 15:31:51 +01:00
Add integration test for Auth module.
This commit is contained in:
parent
b60e46a0b5
commit
4d73eb8697
|
@ -1,5 +1,6 @@
|
||||||
--require ts-node/register
|
--require ts-node/register
|
||||||
--require source-map-support/register
|
--require source-map-support/register
|
||||||
|
--require mock-local-storage
|
||||||
--full-trace
|
--full-trace
|
||||||
--exit
|
--exit
|
||||||
--timeout 300000
|
--timeout 300000
|
||||||
|
|
68
integration/ocean/AuthenticationToken.test.ts
Normal file
68
integration/ocean/AuthenticationToken.test.ts
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
import { assert } from "chai"
|
||||||
|
|
||||||
|
import { config } from "../config"
|
||||||
|
|
||||||
|
import { Ocean, Account } from "../../src" // @oceanprotocol/squid
|
||||||
|
|
||||||
|
describe("Authentication Token", () => {
|
||||||
|
let ocean: Ocean
|
||||||
|
|
||||||
|
let account1: Account
|
||||||
|
let account2: Account
|
||||||
|
|
||||||
|
before(async () => {
|
||||||
|
localStorage.clear()
|
||||||
|
|
||||||
|
ocean = await Ocean.getInstance(config)
|
||||||
|
|
||||||
|
// Accounts
|
||||||
|
const accounts = await ocean.accounts.list()
|
||||||
|
account1 = accounts[0]
|
||||||
|
account2 = accounts[1]
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should generate a token", async () => {
|
||||||
|
const token = await ocean.auth.get(account1)
|
||||||
|
|
||||||
|
assert.match(token, /^0x[a-f0-9]{130}-[0-9]{0,14}/i)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should return the account that signed the token", async () => {
|
||||||
|
const token = await ocean.auth.get(account1)
|
||||||
|
|
||||||
|
const address = await ocean.auth.check(token)
|
||||||
|
|
||||||
|
assert.equal(address, account1.getId())
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should store the token for a user", async () => {
|
||||||
|
await ocean.auth.store(account1)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should restore the token for a user", async () => {
|
||||||
|
const token = await ocean.auth.restore(account1)
|
||||||
|
|
||||||
|
assert.match(token, /^0x[a-f0-9]{130}-[0-9]{0,14}/i)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should return undefined when is not stored", async () => {
|
||||||
|
const token = await ocean.auth.restore(account2)
|
||||||
|
|
||||||
|
assert.isUndefined(token)
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should know if the is stored", async () => {
|
||||||
|
let acc1Stored
|
||||||
|
let acc2Stored
|
||||||
|
acc1Stored = await ocean.auth.isStored(account1)
|
||||||
|
acc2Stored = await ocean.auth.isStored(account2)
|
||||||
|
|
||||||
|
assert.isTrue(acc1Stored)
|
||||||
|
assert.isFalse(acc2Stored)
|
||||||
|
|
||||||
|
await ocean.auth.store(account2)
|
||||||
|
|
||||||
|
acc2Stored = await ocean.auth.isStored(account2)
|
||||||
|
assert.isTrue(acc2Stored)
|
||||||
|
})
|
||||||
|
})
|
|
@ -3,7 +3,8 @@
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"lib": [
|
"lib": [
|
||||||
"es6",
|
"es6",
|
||||||
"es7"
|
"es7",
|
||||||
|
"dom"
|
||||||
],
|
],
|
||||||
"noUnusedLocals": true
|
"noUnusedLocals": true
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,9 @@
|
||||||
"typings": "./dist/node/squid.d.ts",
|
"typings": "./dist/node/squid.d.ts",
|
||||||
"browser": "./dist/browser/squid.cjs2.min.js",
|
"browser": "./dist/browser/squid.cjs2.min.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "mocha --require mock-local-storage",
|
"test": "mocha",
|
||||||
"test:watch": "mocha --require mock-local-storage -w --watch-extensions js,ts,json",
|
"test:watch": "mocha -w --watch-extensions js,ts,json",
|
||||||
"test:cover": "nyc --report-dir coverage/unit mocha --require mock-local-storage",
|
"test:cover": "nyc --report-dir coverage/unit mocha",
|
||||||
"integration": "mocha --opts integration/mocha.opts",
|
"integration": "mocha --opts integration/mocha.opts",
|
||||||
"integration:nile": "export NETWORK_NAME=nile; mocha --opts integration/mocha.opts",
|
"integration:nile": "export NETWORK_NAME=nile; mocha --opts integration/mocha.opts",
|
||||||
"integration:duero": "export NETWORK_NAME=duero; mocha --opts integration/mocha.opts",
|
"integration:duero": "export NETWORK_NAME=duero; mocha --opts integration/mocha.opts",
|
||||||
|
|
|
@ -96,7 +96,7 @@ export class OceanAuth extends Instantiable {
|
||||||
* @return {Promise<boolean>} Is stored and valid.
|
* @return {Promise<boolean>} Is stored and valid.
|
||||||
*/
|
*/
|
||||||
public async isStored(account: Account): Promise<boolean> {
|
public async isStored(account: Account): Promise<boolean> {
|
||||||
return !!this.restore(account)
|
return !!await this.restore(account)
|
||||||
}
|
}
|
||||||
|
|
||||||
private writeToken(address: string, token: string) {
|
private writeToken(address: string, token: string) {
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
--require ts-node/register
|
--require ts-node/register
|
||||||
--require source-map-support/register
|
--require source-map-support/register
|
||||||
|
--require mock-local-storage
|
||||||
--full-trace
|
--full-trace
|
||||||
--bail
|
--bail
|
||||||
--exit
|
--exit
|
||||||
|
|
Loading…
Reference in New Issue
Block a user