Skip to content
This repository has been archived by the owner on Aug 19, 2022. It is now read-only.

Commit

Permalink
some tests for policy search which highlighted error in policyOps logic
Browse files Browse the repository at this point in the history
  • Loading branch information
cianfoley-nearform committed Apr 3, 2018
1 parent fce7863 commit a917aa0
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 6 deletions.
12 changes: 6 additions & 6 deletions packages/udaru-core/lib/ops/policyOps.js
Original file line number Diff line number Diff line change
Expand Up @@ -472,12 +472,12 @@ function buildPolicyOps (db, config) {
)
`

if (type !== 'all') {
if (type === 'shared') {
sqlQuery.append(SQL` AND org_id is NULL`)
} else {
sqlQuery.append(SQL` AND org_id=${organizationId}`)
}
if (type === 'shared') {
sqlQuery.append(SQL` AND org_id is NULL`)
} else if (type === 'all') {
sqlQuery.append(SQL` AND (org_id is NULL OR org_id=${organizationId})`)
} else {
sqlQuery.append(SQL` AND org_id=${organizationId}`)
}

sqlQuery.append(SQL` ORDER BY name;`)
Expand Down
38 changes: 38 additions & 0 deletions packages/udaru-core/test/integration/policyOps.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,44 @@ lab.experiment('PolicyOps', () => {
})
})

lab.test('search policies, no results', (done) => {
policyOps.search({ organizationId: 'WONKA', query: 'bibbidybobbedy' }, (err, results) => {
if (err) return done(err)
expect(results).to.have.length(0)
done()
})
})

lab.test('search policies', (done) => {
policyOps.search({ organizationId: 'WONKA', query: 'acc' }, (err, results) => {
if (err) return done(err)
expect(results).to.have.length(2)
expect(results[0].name.toLowerCase()).to.contain('acc')
expect(results[1].name.toLowerCase()).to.contain('acc')
done()
})
})

lab.test('search shared policies', (done) => {
policyOps.search({ organizationId: 'WONKA', query: 'pol', type: 'shared' }, (err, results) => {
if (err) return done(err)
expect(results).to.have.length(1)
expect(results[0].name.toLowerCase()).to.contain('pol')
done()
})
})

lab.test('search all policies', (done) => {
policyOps.search({ organizationId: 'WONKA', query: 'a', type: 'all' }, (err, results) => {
if (err) return done(err)
expect(results).to.have.length(13)
expect(results[0].name.toLowerCase()).to.contain('a')
expect(results[6].name.toLowerCase()).to.contain('a')
expect(results[12].name.toLowerCase()).to.contain('a')
done()
})
})

lab.test('loads policies from user', (done) => {
policyOps.listAllUserPolicies({ userId: records.called.id, organizationId: orgId }, (err, results) => {
if (err) return done(err)
Expand Down
26 changes: 26 additions & 0 deletions packages/udaru-hapi-plugin/test/endToEnd/policies.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,32 @@ lab.experiment('Policies - get/list', () => {
})
})

lab.test('search policies', (done) => {
const options = utils.requestOptions({
method: 'GET',
url: '/authorization/policies/search?query=acc'
})

server.inject(options, (response) => {
expect(response.statusCode).to.equal(200)
expect(response.result.total).to.equal(2)
done()
})
})

lab.test('search shared policies', (done) => {
const options = utils.requestOptions({
method: 'GET',
url: '/authorization/shared-policies/search?query=pol'
})

server.inject(options, (response) => {
expect(response.statusCode).to.equal(200)
expect(response.result.total).to.equal(2)
done()
})
})

lab.test('get policy list: limit', (done) => {
const options = utils.requestOptions({
method: 'GET',
Expand Down

0 comments on commit a917aa0

Please sign in to comment.