Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

basic sanity management token #124

Merged
merged 2 commits into from
Feb 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
146 changes: 146 additions & 0 deletions test/sanity-check/api/managementToken-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
import { expect } from 'chai'
import { describe, it, setup } from 'mocha'
import { jsonReader } from '../utility/fileOperations/readwrite.js'
import { createManagementToken, createManagementToken2 } from '../mock/managementToken.js'
import { contentstackClient } from '../utility/ContentstackClient.js'

let client = {}

let tokenUidProd = ''
let tokenUidDev = ''
describe('Management Token api Test', () => {
setup(() => {
const user = jsonReader('loggedinuser.json')
client = contentstackClient(user.authtoken)
})

it('should add a Management Token', done => {
makeManagementToken()
.create(createManagementToken)
.then((token) => {
tokenUidDev = token.uid
expect(token.name).to.be.equal(createManagementToken.token.name)
expect(token.description).to.be.equal(createManagementToken.token.description)
expect(token.scope[0].module).to.be.equal(createManagementToken.token.scope[0].module)
expect(token.uid).to.be.not.equal(null)
done()
})
.catch(done)
})

it('should add a Management Token for production', done => {
makeManagementToken()
.create(createManagementToken2)
.then((token) => {
tokenUidProd = token.uid
expect(token.name).to.be.equal(createManagementToken2.token.name)
expect(token.description).to.be.equal(createManagementToken2.token.description)
expect(token.scope[0].module).to.be.equal(createManagementToken2.token.scope[0].module)
expect(token.uid).to.be.not.equal(null)
done()
})
.catch(done)
})

it('should get a Management Token from uid', done => {
makeManagementToken(tokenUidProd)
.fetch()
.then((token) => {
expect(token.name).to.be.equal(createManagementToken2.token.name)
expect(token.description).to.be.equal(createManagementToken2.token.description)
expect(token.scope[0].module).to.be.equal(createManagementToken2.token.scope[0].module)
expect(token.uid).to.be.not.equal(null)
done()
})
.catch(done)
})

it('should query to get all Management Token', done => {
makeManagementToken()
.query()
.find()
.then((tokens) => {
tokens.items.forEach((token) => {
expect(token.name).to.be.not.equal(null)
expect(token.description).to.be.not.equal(null)
expect(token.scope[0].module).to.be.not.equal(null)
expect(token.uid).to.be.not.equal(null)
})
done()
})
.catch(done)
})

it('should query to get a Management Token from name', done => {
makeManagementToken()
.query({ query: { name: createManagementToken.token.name } })
.find()
.then((tokens) => {
tokens.items.forEach((token) => {
expect(token.name).to.be.equal(createManagementToken.token.name)
expect(token.description).to.be.equal(createManagementToken.token.description)
expect(token.scope[0].module).to.be.equal(createManagementToken.token.scope[0].module)
expect(token.uid).to.be.not.equal(null)
})
done()
})
.catch(done)
})

it('should fetch and update a Management Token from uid', done => {
makeManagementToken(tokenUidProd)
.fetch()
.then((token) => {
token.name = 'Update Production Name'
token.description = 'Update Production description'
token.scope = createManagementToken2.token.scope
return token.update()
})
.then((token) => {
expect(token.name).to.be.equal('Update Production Name')
expect(token.description).to.be.equal('Update Production description')
expect(token.scope[0].module).to.be.equal(createManagementToken2.token.scope[0].module)
expect(token.uid).to.be.not.equal(null)
done()
})
.catch(done)
})

it('should update a Management Token from uid', done => {
const token = makeManagementToken(tokenUidProd)
Object.assign(token, createManagementToken2.token)
token.update()
.then((token) => {
expect(token.name).to.be.equal(createManagementToken2.token.name)
expect(token.description).to.be.equal(createManagementToken2.token.description)
expect(token.scope[0].module).to.be.equal(createManagementToken2.token.scope[0].module)
expect(token.uid).to.be.not.equal(null)
done()
})
.catch(done)
})

it('should delete a Management Token from uid', done => {
makeManagementToken(tokenUidProd)
.delete()
.then((data) => {
expect(data.notice).to.be.equal('Management Token deleted successfully.')
done()
})
.catch(done)
})

it('should delete a Management Token from uid 2', done => {
makeManagementToken(tokenUidDev)
.delete()
.then((data) => {
expect(data.notice).to.be.equal('Management Token deleted successfully.')
done()
})
.catch(done)
})
})

function makeManagementToken (uid = null) {
return client.stack({ api_key: process.env.API_KEY }).managementToken(uid)
}
6 changes: 2 additions & 4 deletions test/sanity-check/api/organization-test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { expect } from 'chai'
import { describe, it, setup } from 'mocha'
import { jsonReader } from '../utility/fileOperations/readwrite'
import { jsonReader, jsonWrite } from '../utility/fileOperations/readwrite'
import { contentstackClient } from '../utility/ContentstackClient'

var user = {}
Expand Down Expand Up @@ -79,6 +79,7 @@ describe('Organization api test', () => {
organization.roles()
.then((roles) => {
for (const i in roles.items) {
jsonWrite(roles.items, 'orgRoles.json')
expect(roles.items[i].uid).to.not.equal(null, 'Role uid cannot be null')
expect(roles.items[i].name).to.not.equal(null, 'Role name cannot be null')
expect(roles.items[i].org_uid).to.be.equal(organization.uid, 'Role org_uid not match')
Expand All @@ -102,7 +103,4 @@ describe('Organization api test', () => {
})
.catch(done)
})

// addUser
// Resend invitation
})
148 changes: 148 additions & 0 deletions test/sanity-check/api/role-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
import { expect } from 'chai'
import { describe, it, setup } from 'mocha'
import role from '../mock/role.js'
import { jsonReader, jsonWrite } from '../utility/fileOperations/readwrite'
import { contentstackClient } from '../utility/ContentstackClient.js'
import dotenv from 'dotenv'

dotenv.config()
let client = {}
let roleUID = ''

describe('Role api test', () => {
setup(() => {
const user = jsonReader('loggedinuser.json')
client = contentstackClient(user.authtoken)
})

it('should get all role in stack', done => {
getRole()
.fetchAll()
.then((roles) => {
jsonWrite(roles.items, 'roles.json')
for (const index in roles.items) {
const role1 = roles.items[index]
expect(role1.uid).to.not.equal(null, 'Role uid cannot be null')
}
done()
})
.catch(done)
})

it('should get 1 role in stack with limit', done => {
getRole()
.fetchAll({ limit: 2 })
.then((roles) => {
expect(roles.items.length).to.not.equal(1)
done()
})
.catch(done)
})

it('should get role in stack with skip first', done => {
getRole()
.fetchAll({ skip: 1 })
.then((roles) => {
expect(roles.items.lenth).to.not.equal(1, 'Role fetch with limit 1 not work')
done()
})
.catch(done)
})

it('should create new role in stack', done => {
getRole()
.create(role)
.then((roles) => {
roleUID = roles.uid
expect(roles.name).to.be.equal(role.role.name, 'Role name not match')
expect(roles.description).to.be.equal(role.role.description, 'Role description not match')
done()
})
.catch(done)
})

it('should get role in stack', done => {
getRole(roleUID)
.fetch()
.then((roles) => {
jsonWrite(roles, 'role.json')
expect(roles.name).to.be.equal(role.role.name, 'Role name not match')
expect(roles.description).to.be.equal(role.role.description, 'Role description not match')
expect(roles.stack.api_key).to.be.equal(process.env.API_KEY, 'Role stack uid not match')
done()
})
.catch(done)
})

it('should update role in stack', done => {
getRole(roleUID)
.fetch({ include_rules: true, include_permissions: true })
.then((roles) => {
roles.name = 'Update test name'
roles.description = 'Update description'
return roles.update()
})
.then((roles) => {
expect(roles.name).to.be.equal('Update test name', 'Role name not match')
expect(roles.description).to.be.equal('Update description', 'Role description not match')
done()
})
.catch(done)
})

it('should get all Roles with query', done => {
getRole()
.query()
.find()
.then((response) => {
for (const index in response.items) {
const role = response.items[index]
expect(role.name).to.not.equal(null)
expect(role.uid).to.not.equal(null)
}
done()
})
.catch(done)
})

it('should get query Role', done => {
getRole()
.query({ query: { name: 'Developer' } })
.find()
.then((response) => {
for (const index in response.items) {
const stack = response.items[index]
expect(stack.name).to.be.equal('Developer')
}
done()
})
.catch(done)
})

it('should find one role', done => {
getRole()
.query({ name: 'Developer' })
.findOne()
.then((response) => {
const stack = response.items[0]
expect(response.items.length).to.be.equal(1)
expect(stack.name).to.be.not.equal(null)
done()
})
.catch(done)
})

it('should delete role in stack', done => {
getRole(roleUID)
.delete()
.then((roles) => {
expect(roles.notice).to.be.equal('The role deleted successfully.')
done()
})
.catch(done)
})
})

function getRole (uid = null) {
return client.stack({ api_key: process.env.API_KEY }).role(uid)
}
72 changes: 72 additions & 0 deletions test/sanity-check/mock/managementToken.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
const createManagementToken = {
token: {
name: 'Dev Token',
description: 'This is a sample management token.',
scope: [
{
module: 'content_type',
acl: {
read: true,
write: true
}
},
{
module: 'branch',
branches: [
'main'
],
acl: {
read: true
}
},
{
module: 'branch_alias',
branch_aliases: [
'sb1_alias'
],
acl: {
read: true
}
}
],
expires_on: '2024-12-10',
is_email_notification_enabled: true
}
}
const createManagementToken2 = {
token: {
name: 'Prod Token',
description: 'This is a sample management token.',
scope: [
{
module: 'content_type',
acl: {
read: true,
write: true
}
},
{
module: 'branch',
branches: [
'main'
],
acl: {
read: true
}
},
{
module: 'branch_alias',
branch_aliases: [
'sb1_alias'
],
acl: {
read: true
}
}
],
expires_on: '2024-12-10',
is_email_notification_enabled: true
}
}

export { createManagementToken, createManagementToken2 }
Loading
Loading