squid-js/integration/ocean/AuthenticationToken.test.ts

78 lines
2.1 KiB
TypeScript
Raw Normal View History

2019-06-20 00:20:09 +02:00
import { assert } from 'chai'
2019-05-08 12:07:45 +02:00
2019-06-20 00:20:09 +02:00
import { config } from '../config'
2019-05-08 12:07:45 +02:00
2019-06-20 00:20:09 +02:00
import { Ocean, Account } from '../../src' // @oceanprotocol/squid
2019-05-08 12:07:45 +02:00
2019-06-20 00:20:09 +02:00
describe('Authentication Token', () => {
2019-05-08 12:07:45 +02:00
let ocean: Ocean
let account1: Account
let account2: Account
before(async () => {
try {
localStorage.clear()
2019-06-20 00:20:09 +02:00
} catch {}
2019-05-08 12:07:45 +02:00
ocean = await Ocean.getInstance(config)
// Accounts
const accounts = await ocean.accounts.list()
account1 = accounts[0]
account2 = accounts[1]
})
2019-06-20 00:20:09 +02:00
it('should generate a token', async () => {
2019-05-08 12:07:45 +02:00
const token = await ocean.auth.get(account1)
assert.match(token, /^0x[a-f0-9]{130}-[0-9]{0,14}/i)
})
2019-06-20 00:20:09 +02:00
it('should return the account that signed the token', async () => {
2019-05-08 12:07:45 +02:00
const token = await ocean.auth.get(account1)
const address = await ocean.auth.check(token)
assert.equal(address, account1.getId())
})
2019-06-20 00:20:09 +02:00
it('should store the token for a user', async () => {
assert.isUndefined(await account1.getToken())
2019-05-08 12:07:45 +02:00
await ocean.auth.store(account1)
assert.match(await account1.getToken(), /^0x[a-f0-9]{130}-[0-9]{0,14}/i)
2019-05-08 12:07:45 +02:00
})
2019-06-20 00:20:09 +02:00
it('should restore the token for a user', async () => {
2019-05-08 12:07:45 +02:00
const token = await ocean.auth.restore(account1)
assert.match(token, /^0x[a-f0-9]{130}-[0-9]{0,14}/i)
})
2019-06-20 00:20:09 +02:00
it('should return undefined when is not stored', async () => {
2019-05-08 12:07:45 +02:00
const token = await ocean.auth.restore(account2)
assert.isUndefined(token)
})
2019-06-20 00:20:09 +02:00
it('should know if the token is stored', async () => {
2019-05-08 12:07:45 +02:00
let acc1Stored
let acc2Stored
acc1Stored = await ocean.auth.isStored(account1)
acc2Stored = await ocean.auth.isStored(account2)
assert.isTrue(acc1Stored)
assert.isTrue(await account1.isTokenStored())
2019-05-08 12:07:45 +02:00
assert.isFalse(acc2Stored)
assert.isFalse(await account2.isTokenStored())
2019-05-08 12:07:45 +02:00
2019-05-20 11:33:15 +02:00
await account2.authenticate()
2019-05-08 12:07:45 +02:00
acc2Stored = await ocean.auth.isStored(account2)
assert.isTrue(acc2Stored)
assert.isTrue(await account2.isTokenStored())
2019-05-08 12:07:45 +02:00
})
})