mirror of https://github.com/nocodb/nocodb
Pranav C
2 years ago
5 changed files with 188 additions and 12 deletions
@ -0,0 +1,173 @@
|
||||
import { expect } from 'chai' |
||||
import 'mocha' |
||||
import request from 'supertest' |
||||
import { OrgUserRoles } from '../../../../src/enums/OrgUserRoles' |
||||
import init from '../../init' |
||||
|
||||
function authTests() { |
||||
let context |
||||
|
||||
beforeEach(async function() { |
||||
context = await init() |
||||
}) |
||||
|
||||
it('Get users list', async () => { |
||||
const response = await request(context.app) |
||||
.get('/api/v1/users') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
|
||||
expect(response.body).to.have.keys(['list', 'pageInfo']) |
||||
expect(response.body.list).to.have.length(1) |
||||
|
||||
}) |
||||
|
||||
it('Invite a new user', async () => { |
||||
|
||||
const response = await request(context.app) |
||||
.post('/api/v1/users') |
||||
.set('xc-auth', context.token).send({ email: 'a@nocodb.com' }) |
||||
.expect(200) |
||||
|
||||
console.log(response.body) |
||||
|
||||
expect(response.body).to.have.property('invite_token').to.be.a('string') |
||||
// todo: verify invite token
|
||||
}) |
||||
|
||||
it('Update user role', async () => { |
||||
const email = 'a@nocodb.com' |
||||
// invite a user
|
||||
await request(context.app) |
||||
.post('/api/v1/users') |
||||
.set('xc-auth', context.token).send({ email }) |
||||
.expect(200) |
||||
const response = await request(context.app) |
||||
.get('/api/v1/users') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
expect(response.body.list).to.have.length(2) |
||||
|
||||
const user = response.body.list.find(u => u.email === email) |
||||
|
||||
expect(user).to.have.property('roles').to.be.equal(OrgUserRoles.VIEWER) |
||||
|
||||
|
||||
await request(context.app) |
||||
.patch('/api/v1/users/' + user.id) |
||||
.set('xc-auth', context.token) |
||||
.send({ roles: OrgUserRoles.CREATOR }) |
||||
.expect(200) |
||||
|
||||
|
||||
const response2 = await request(context.app) |
||||
.get('/api/v1/users') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
expect(response2.body.list).to.have.length(2) |
||||
|
||||
const user2 = response2.body.list.find(u => u.email === email) |
||||
|
||||
expect(user2).to.have.property('roles').to.be.equal(OrgUserRoles.CREATOR) |
||||
}) |
||||
|
||||
it('Remove user', async () => { |
||||
const email = 'a@nocodb.com' |
||||
// invite a user
|
||||
await request(context.app) |
||||
.post('/api/v1/users') |
||||
.set('xc-auth', context.token).send({ email }) |
||||
.expect(200) |
||||
|
||||
const response = await request(context.app) |
||||
.get('/api/v1/users') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
expect(response.body.list).to.have.length(2) |
||||
|
||||
const user = response.body.list.find(u => u.email === email) |
||||
|
||||
expect(user).to.have.property('roles').to.be.equal(OrgUserRoles.VIEWER) |
||||
|
||||
|
||||
await request(context.app) |
||||
.delete('/api/v1/users/' + user.id) |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
|
||||
|
||||
const response2 = await request(context.app) |
||||
.get('/api/v1/users') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
expect(response2.body.list).to.have.length(1) |
||||
|
||||
}) |
||||
|
||||
|
||||
it('Get token list', async () => { |
||||
const response = await request(context.app) |
||||
.get('/api/v1/tokens') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
|
||||
expect(response.body).to.have.keys(['list', 'pageInfo']) |
||||
expect(response.body.list).to.have.length(0) |
||||
|
||||
}) |
||||
|
||||
it('Generate token', async () => { |
||||
const r = await request(context.app) |
||||
.post('/api/v1/tokens') |
||||
.set('xc-auth', context.token) |
||||
.send({ description: 'test' }) |
||||
.expect(200) |
||||
|
||||
const response = await request(context.app) |
||||
.get('/api/v1/tokens') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
|
||||
expect(response.body).to.have.keys(['list', 'pageInfo']) |
||||
expect(response.body.list).to.have.length(1) |
||||
expect(response.body.list[0]).to.have.property('token').to.be.a('string') |
||||
expect(response.body.list[0]).to.have.property('description').to.be.a('string').to.be.eq('test') |
||||
|
||||
}) |
||||
|
||||
it.only('Delete token', async () => { |
||||
const r = await request(context.app) |
||||
.post('/api/v1/tokens') |
||||
.set('xc-auth', context.token) |
||||
.send({ description: 'test' }) |
||||
.expect(200) |
||||
|
||||
let response = await request(context.app) |
||||
.get('/api/v1/tokens') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
|
||||
expect(response.body).to.have.keys(['list', 'pageInfo']) |
||||
expect(response.body.list).to.have.length(1) |
||||
|
||||
await request(context.app) |
||||
.delete('/api/v1/tokens/' + r.body.token) |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
|
||||
|
||||
response = await request(context.app) |
||||
.get('/api/v1/tokens') |
||||
.set('xc-auth', context.token) |
||||
.expect(200) |
||||
|
||||
expect(response.body).to.have.keys(['list', 'pageInfo']) |
||||
expect(response.body.list).to.have.length(0) |
||||
|
||||
}) |
||||
|
||||
} |
||||
|
||||
export default function() { |
||||
describe('Organisation', authTests) |
||||
} |
Loading…
Reference in new issue