Skip to content

Commit

Permalink
fix: update tests and yaml to match api w/o offset, limit, owner_id, etc
Browse files Browse the repository at this point in the history
  • Loading branch information
gwynndp committed Apr 11, 2022
1 parent ffb193b commit 3d52c7d
Show file tree
Hide file tree
Showing 10 changed files with 178 additions and 1,290 deletions.
190 changes: 20 additions & 170 deletions api-tests/stakeholder-api.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,91 +3,14 @@ const request = require('supertest');
const { expect } = require('chai');
const server = require('../server/app');
const stakeholderSeed = require('../database/seeds/11_story_stakeholder');
const knex = require('../database/connection');

stakeholderSeed.seed();
describe('Stakeholder API tests.', () => {
before(async () => {
await stakeholderSeed.seed(knex);
});

describe.skip('Stakeholder API tests.', () => {
describe('Stakeholder GET', () => {
it(`Should raise validation error with error code 422 -- 'limit' query parameter should be an integer `, function (done) {
request(server)
.get(`/stakeholders`)
.query({
limit: 8.965,
})
.set('Accept', 'application/json')
.expect(422)
.end(function (err, res) {
// console.log('res.body.message ----------> ', res.body, err);
expect(res.body.message).to.eql('"limit" must be an integer');
if (err) return done(err);
return done();
});
});

it(`Should raise validation error with error code 422 -- 'limit' query parameter should be greater than 0 `, function (done) {
request(server)
.get(`/stakeholders`)
.query({
limit: 0,
})
.set('Accept', 'application/json')
.expect(422)
.end(function (err, res) {
// console.log('res.body.message ----------> ', res.body);
expect(res.body.message).to.eql('"limit" must be greater than 0');
if (err) return done(err);
return done();
});
});

it(`Should raise validation error with error code 422 -- 'limit' query parameter should be less than 101 `, function (done) {
request(server)
.get(`/stakeholders`)
.query({
limit: 101,
})
.set('Accept', 'application/json')
.expect(422)
.end(function (err, res) {
// console.log('res.body.message ----------> ', res.body);
expect(res.body.message).to.eql('"limit" must be less than 101');
if (err) return done(err);
return done();
});
});

it(`Should raise validation error with error code 422 -- 'offset' query parameter should be an integer `, function (done) {
request(server)
.get(`/stakeholders`)
.query({
offset: 4.45,
})
.set('Accept', 'application/json')
.expect(422)
.end(function (err, res) {
// console.log('res.body.message ----------> ', res.body);
expect(res.body.message).to.eql('"offset" must be an integer');
if (err) return done(err);
return done();
});
});

it(`Should raise validation error with error code 422 -- 'offset' query parameter should be at least 0 `, function (done) {
request(server)
.get(`/stakeholders`)
.query({
offset: -1,
})
.set('Accept', 'application/json')
.expect(422)
.end(function (err, res) {
// console.log('res.body.message ----------> ', res.body);
expect(res.body.message).to.eql('"offset" must be greater than -1');
if (err) return done(err);
return done();
});
});

it(`Should raise validation error with error code 422 -- 'id' should be a uuid `, function (done) {
request(server)
.get(`/stakeholders`)
Expand All @@ -97,116 +20,43 @@ describe.skip('Stakeholder API tests.', () => {
.set('Accept', 'application/json')
.expect(422)
.end(function (err, res) {
// console.log('res.body.message ----------> ', res.body);
expect(res.body.message).to.eql('"id" must be a valid GUID');
if (err) return done(err);
return done();
});
});

it(`Should raise validation error with error code 422 -- 'owner_id' query parameter should be a valid uuid `, function (done) {
request(server)
.get(`/stakeholders`)
.query({
owner_id: 8.965,
})
.set('Accept', 'application/json')
.expect(422)
.end(function (err, res) {
// console.log('res.body.message ----------> ', res.body);
expect(res.body.message).to.eql('"owner_id" must be a valid GUID');
if (err) return done(err);
return done();
});
});

it(`Should raise validation error with error code 422 -- 'organization_id' query parameter should be an integer `, function (done) {
request(server)
.get(`/stakeholders`)
.query({
organization_id: 8.965,
})
.set('Accept', 'application/json')
.expect(422)
.end(function (err, res) {
expect(res.body.message).to.eql(
'"organization_id" must be an integer',
);
if (err) return done(err);
return done();
});
});

it(`Should get stakeholder successfully -- with limit `, function (done) {
it(`Should get stakeholder successfully -- with query id `, function (done) {
request(server)
.get(`/stakeholders`)
.query({ limit: 2, first_name: 'first_name' })
.query({ id: stakeholderSeed.stakeholderOne.id })
.set('Accept', 'application/json')
.expect(200)
.end(function (err, res) {
if (err) return done(err);
expect(res.body).to.have.keys([
'stakeholders',
'links',
'totalCount',
]);
expect(res.body.links).to.have.keys(['prev', 'next']);
expect(res.body.links.prev).to.eq(null);
expect(res.body.stakeholders).to.have.lengthOf(2);

// eslint-disable-next-line no-restricted-syntax
for (const stakeholder of res.body.stakeholders) {
expect(stakeholder).to.have.keys([
'id',
'type',
'org_name',
'first_name',
'last_name',
'email',
'phone',
'pwd_reset_required',
'website',
'wallet',
'password',
'salt',
// 'active_contract_id',
'offering_pay_to_plant',
'tree_validation_contract_id',
'logo_url',
'map',
'organization_id',
'owner_id',
'children',
'parents',
]);
}

expect(res.body).to.have.keys(['stakeholders', 'totalCount']);
expect(res.body.totalCount).to.eq(1);
expect(res.body.stakeholders[0]).to.eql({
...stakeholderSeed.stakeholderOne,
children: [],
parents: [],
});
expect(res.body.stakeholders).to.have.length(1);
return done();
});
});

it(`Should get stakeholder successfully -- with query id `, function (done) {
it(`Should get stakeholders successfully -- with query type `, function (done) {
request(server)
.get(`/stakeholders`)
.query({ id: stakeholderSeed.stakeholderOne.id })
.query({ type: stakeholderSeed.stakeholderOne.type })
.set('Accept', 'application/json')
.expect(200)
.end(function (err, res) {
if (err) return done(err);
expect(res.body).to.have.keys([
'stakeholders',
'links',
'totalCount',
]);
expect(res.body.links).to.have.keys(['prev', 'next']);
expect(res.body.links.prev).to.eq(null);
expect(res.body.totalCount).to.eq(1);
expect(res.body.stakeholders[0]).to.eql({
...stakeholderSeed.stakeholderOne,
children: [],
parents: [],
});
expect(res.body.stakeholders).to.have.length(1);
expect(res.body).to.have.keys(['stakeholders', 'totalCount']);
expect(res.body.totalCount).to.be.greaterThanOrEqual(2);
expect(res.body.stakeholders).to.have.length(res.body.totalCount);
return done();
});
});
Expand Down
28 changes: 19 additions & 9 deletions database/seeds/11_story_stakeholder.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ const { v4: uuid } = require('uuid');

const stakeholderOne = Object.freeze({
id: uuid(),
type: 'type',
type: 'Organization',
org_name: 'name',
first_name: 'first_name',
last_name: 'last_name',
email: 'email',
phone: 'phone',
website: 'website',
logo_url: 'url',
map: 'ma,e'
map: 'ma,e',
});

const stakeholderTwo = Object.freeze({
id: uuid(),
type: 'type',
type: 'Person',
org_name: 'name',
first_name: 'first_name',
last_name: 'last_name',
Expand All @@ -26,16 +26,26 @@ const stakeholderTwo = Object.freeze({
map: 'ma,e',
});

const stakeholderThree = Object.freeze({
id: uuid(),
type: 'Organization',
org_name: 'name',
first_name: 'first_name',
last_name: 'last_name',
email: 'email',
phone: 'phone',
website: 'website',
logo_url: 'url',
map: 'ma,e',
});

const seed = async function (knex) {

await knex('stakeholder').insert([stakeholderOne, stakeholderTwo]);

}
};

module.exports = {
seed,
stakeholderOne,
stakeholderTwo
}

stakeholderTwo,
stakeholderThree,
};
Loading

0 comments on commit 3d52c7d

Please sign in to comment.