UNPKG

evrythng

Version:

Official Javascript SDK for the EVRYTHNG API.

101 lines (96 loc) 3.96 kB
const evrythng = require('../../dist/evrythng.node') const { assert } = require('chai') const { OPERATOR_API_KEY, OPERATOR_EMAIL, ACCOUNT_ID } = require('./config') const { policyData, operatorAccessData, accessTokenData, thngData } = require('./dataGenerator') describe('e2e tests for apiVersion=2', () => { describe('as Operator', () => { let operator before(async () => { evrythng.setup({ apiKey: OPERATOR_API_KEY }) operator = new evrythng.Operator(OPERATOR_API_KEY) await operator.init() }) it('should create and read access policy', async () => { const data = await policyData() const policy = await operator.accessPolicy().create(data) assert.deepInclude(policy, data, 'Incorrect policy is created') const readPolicy = await operator.accessPolicy(policy.id).read() assert.equal(readPolicy.id, policy.id, `Can not read policy by ${policy.id}`) }) it('should create operator access and read it', async function test () { this.timeout(10000) const findAdminAccountPolicy = await operator .accessPolicy() .setFilter('name=evt:accountAdmin') .read() const adminAccountPolicy = findAdminAccountPolicy[0].id const operatorData = await operatorAccessData(OPERATOR_EMAIL, adminAccountPolicy) const createdOperarorAccess = await operator .sharedAccount(ACCOUNT_ID) .operatorAccess() .create(operatorData) assert.deepInclude( createdOperarorAccess, operatorData, 'Incorrect operatorAccess is created' ) const readOperatorAccess = await operator .sharedAccount(ACCOUNT_ID) .operatorAccess(createdOperarorAccess.id) .read() assert.equal( readOperatorAccess.id, createdOperarorAccess.id, `Can not read operator access by ${createdOperarorAccess.id}` ) }) it('should get your own access', async function () { const findAdminAccountPolicy = await operator .accessPolicy() .setFilter('name=evt:accountAdmin') .read() const adminAccountPolicy = findAdminAccountPolicy[0].id const myAccess = await operator.me().read() assert.equal( myAccess.permissions, adminAccountPolicy.permissions, 'Cannot get my own access' ) }) }) describe('as AccessToken', () => { let accessToken, adminAccountPolicy before(async function () { this.timeout(10000) evrythng.setup({ apiKey: OPERATOR_API_KEY }) const operator = new evrythng.Operator(OPERATOR_API_KEY) const findAdminAccountPolicy = await operator .accessPolicy() .setFilter('name=evt:accountAdmin') .read() adminAccountPolicy = findAdminAccountPolicy[0].id const data = accessTokenData(adminAccountPolicy) const createdAccessToken = await operator.accessToken().create(data) const accessTokenApiKey = createdAccessToken.apiKey accessToken = new evrythng.AccessToken(accessTokenApiKey) await accessToken.init() }) it('should create access policy', async () => { const data = await policyData() const policy = await accessToken.accessPolicy().create(data) assert.deepInclude(policy, data, 'Incorrect policy is created') const readPolicy = await accessToken.accessPolicy(policy.id).read() assert.equal(readPolicy.id, policy.id, `Can not read policy by ${policy.id}`) }) it('should create thng', async () => { const data = thngData() const thng = await accessToken.thng().create(data) assert.deepInclude(thng, data, 'Can not create thng') }) it('should create access token', async () => { const data = accessTokenData(adminAccountPolicy) const createdAccessToken = await accessToken.accessToken().create(data) assert.deepInclude(createdAccessToken, data, 'Can not create access token') }) }) })