Skip to content

Commit

Permalink
Modify Enterprise function names and write tests
Browse files Browse the repository at this point in the history
Change names of Enterprise function names to better reflect functionality.  Write tests for Enterprise (unable to run due to membership restrictions).  Update COVERAGE.md with statuses.
  • Loading branch information
mikerourke committed Jul 24, 2017
1 parent 91af609 commit 743609d
Show file tree
Hide file tree
Showing 5 changed files with 196 additions and 30 deletions.
26 changes: 13 additions & 13 deletions COVERAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -171,19 +171,19 @@ The table below contains all of the available Trello routes and their status in
| CHK-P-02 | checklist | post | /checklists/:id/checkItems ||| |
| CHK-D-01 | checklist | delete | /checklists/:id ||| |
| CHK-D-02 | checklist | delete | /checklists/:id/checkItems/:id ||| |
| ENT-G-01 | enterprise | get | /enterprises/:id || | |
| ENT-G-02 | enterprise | get | /enterprises/:id/admins || | |
| ENT-G-03 | enterprise | get | /enterprises/:id/signupUrl || | |
| ENT-G-04 | enterprise | get | /enterprises/:id/members || | |
| ENT-G-05 | enterprise | get | /enterprises/:id/members/:idMember || | |
| ENT-G-06 | enterprise | get | /enterprises/:id/transferrable/organization/:idOrg || | |
| ENT-U-01 | enterprise | put | /enterprises/:id/members/:idMember/deactivated || | |
| ENT-U-02 | enterprise | put | /enterprises/:id/organizations || | |
| ENT-U-03 | enterprise | put | /enterprises/:id/admins/:idMember || | |
| ENT-P-01 | enterprise | post | /enterprises/:id/tokens || | |
| ENT-D-01 | enterprise | delete | /enterprises/:id/organizations/:idOrg || | |
| ENT-D-02 | enterprise | delete | /enterprises/:id/admins/:idMember || | |
| ENT-P-01 | enterprise | get | /enterprises/:id/transferrable/organization/:idOrg || | |
| ENT-G-01 | enterprise | get | /enterprises/:id || 🔒 | |
| ENT-G-02 | enterprise | get | /enterprises/:id/admins || 🔒 | |
| ENT-G-03 | enterprise | get | /enterprises/:id/signupUrl || 🔒 | |
| ENT-G-04 | enterprise | get | /enterprises/:id/members || 🔒 | |
| ENT-G-05 | enterprise | get | /enterprises/:id/members/:idMember || 🔒 | |
| ENT-G-06 | enterprise | get | /enterprises/:id/transferrable/organization/:idOrg || 🔒 | |
| ENT-U-01 | enterprise | put | /enterprises/:id/members/:idMember/deactivated || 🔒 | |
| ENT-U-02 | enterprise | put | /enterprises/:id/organizations || 🔒 | |
| ENT-U-03 | enterprise | put | /enterprises/:id/admins/:idMember || 🔒 | |
| ENT-P-01 | enterprise | post | /enterprises/:id/tokens || 🔒 | |
| ENT-D-01 | enterprise | delete | /enterprises/:id/organizations/:idOrg || 🔒 | |
| ENT-D-02 | enterprise | delete | /enterprises/:id/admins/:idMember || 🔒 | |
| ENT-P-01 | enterprise | get | /enterprises/:id/transferrable/organization/:idOrg || 🔒 | |
| LBL-G-01 | label | get | /labels/:id ||| |
| LBL-G-02 | label | get | /labels/:id/board ||| |
| LBL-G-03 | label | get | /labels/:id/board/:field ||| |
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "trello-for-wolves",
"version": "1.4.7",
"version": "1.5.0",
"description": "Node.js wrapper for Trello API...for wolves.",
"engines": {
"node": ">=6.11.0"
Expand Down
2 changes: 1 addition & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export default class Trello {
}

/* istanbul ignore next: I can't test these with my current membership level. */
enterprise(enterpriseId?: string = ''): Object {
enterprises(enterpriseId?: string = ''): Object {
return new Enterprise(this.config, `/enterprise/${enterpriseId}`);
}

Expand Down
30 changes: 15 additions & 15 deletions src/resources/enterprise.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import type {
OrganizationFilter,
} from '../types';

type Combination<T> = T | Array<T>;

type EnterpriseField =
'id'
| 'name'
Expand All @@ -30,8 +32,6 @@ type EnterpriseField =

type SortOrder = 'id' | 'ascending' | 'descending' | 'asc' | 'desc';

type Combination<T> = T | Array<T>;

/**
* @namespace Enterprise
*/
Expand Down Expand Up @@ -63,14 +63,14 @@ export default class Enterprise extends BaseResource {
return this.httpGet('/admins', queryArgs);
}

getConfirmationUrl(
getSignupUrl(
queryArgs?: {
authenticate?: boolean,
confirmationAccepted?: boolean,
returnUrl?: 'none' | string,
},
): Promise<*> {
return this.httpGet('/admins', queryArgs);
return this.httpGet('/signupUrl', queryArgs);
}

getMembers(
Expand Down Expand Up @@ -103,15 +103,7 @@ export default class Enterprise extends BaseResource {
return this.httpGet(`/transferrable/organization/${orgId}`);
}

addToken(
queryArgs?: {
expiration: 'none' | '1hour' | '1day' | '30days' | 'never',
},
): Promise<*> {
return this.httpPost('/tokens', queryArgs);
}

updateMemberDeactivated(
deactivateMember(
memberId: string,
queryArgs?: {
fields?: Combination<MemberEnterpriseOnlyField>,
Expand All @@ -122,15 +114,23 @@ export default class Enterprise extends BaseResource {
return this.httpPut(`/members/${memberId}/deactivated`, queryArgs);
}

addOrganization(orgId: string): Promise<*> {
transferToOrganization(orgId: string): Promise<*> {
return this.httpPut('/organizations', { idOrganization: orgId });
}

addMemberAsAdmin(memberId: string): Promise<*> {
return this.httpPut(`/admins/${memberId}`);
}

removeOrganization(orgId: string): Promise<*> {
addToken(
queryArgs?: {
expiration: 'none' | '1hour' | '1day' | '30days' | 'never',
},
): Promise<*> {
return this.httpPost('/tokens', queryArgs);
}

dissociateOrganization(orgId: string): Promise<*> {
return this.httpDelete(`/organizations/${orgId}`);
}

Expand Down
166 changes: 166 additions & 0 deletions tests/resources/enterprise.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
/* Internal dependencies */
import Trello from '../../src/index';
import Logger from '../../internals/testing/logger';

describe.skip('ENT | Enterprise Resource', function() {
let trello;
let logger;

let enterpriseData = {};
let enterpriseId = '';
let memberId = '';
let orgId = '';

before(function() {
trello = new Trello(config);
logger = new Logger();
});

beforeEach(function() {
logger.setTestName(this.currentTest.title);
});

after(function(done) {
logger.writeResultsToFile('enterprise')
.then(() => done())
.catch(error => done(error));
});

const logResponse = (response) => logger.processResponse(response);

describe('ENT-G | Enterprise GET requests', function() {
before(function(done) {
setTimeout(() => { done(); }, testDelay);
});

it('ENT-G-01-T01 | gets a Enterprise', (done) => {
trello.enterprises(enterpriseId).getEnterprise()
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});

it('ENT-G-01-T02 | gets a Enterprise with all arguments', function(done) {
trello.enterprises(enterpriseId).getEnterprise({
fields: 'all',
members: 'all',
memberFields: 'all',
memberFilter: 'none',
memberSortBy: 'none',
memberSortOrder: 'ascending',
memberStartIndex: 0,
memberCount: 100,
organizations: 'all',
organizationFields: 'all',
organizationPaidAccounts: false,
organizationMemberships: 'normal',
})
.then(logResponse)
.then((response) => {
enterpriseData = response.data || {};
assert.isDefined(response.data);
done();
})
.catch(error => done(error));
});

it('ENT-G-02-T01 | gets the associated admins', function(done) {
trello.enterprises(enterpriseId).getAdmins()
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});

it('ENT-G-03-T02 | gets the associated Signup URL', function(done) {
trello.enterprises(enterpriseId).getSignupUrl()
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});

it('ENT-G-04-T01 | gets the associated Members', function(done) {
trello.enterprises(enterpriseId).getMembers()
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});

it('ENT-G-05-T01 | gets the associated Member with the specified ID', function(done) {
trello.enterprises(enterpriseId).getMember(memberId)
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});

it('ENT-G-06-T01 | gets the transferrable status of the Organization with the specified ID', function(done) {
trello.enterprises(enterpriseId).getIfOrgTransferrable(orgId)
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});
});

describe('ENT-U | Enterprise PUT requests', function() {
before(function(done) {
setTimeout(() => { done(); }, testDelay);
});

it('ENT-U-01-T01 | deactivates a Member associated with the Enterprise', function(done) {
trello.enterprises(enterpriseId).deactivateMember(memberId)
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});

it('ENT-U-02-T01 | transfers to a different Organization', function(done) {
trello.enterprises(enterpriseId).transferToOrganization(orgId)
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});

it('ENT-U-03-T01 | adds a Member as admin', function(done) {
trello.enterprises(enterpriseId).addMemberAsAdmin(memberId)
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});
});

describe('ENT-P | Enterprise POST requests', function() {
before(function (done) {
setTimeout(() => {
done();
}, testDelay);
});

it('ENT-P-01-T01 | adds a Token', function(done) {
trello.enterprises(enterpriseId).addToken()
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});
});

describe('ENT-P | Enterprise DELETE requests', function() {
before(function (done) {
setTimeout(() => {
done();
}, testDelay);
});

it('ENT-D-01-T01 | removes the association with an Organization', function(done) {
trello.enterprises(enterpriseId).dissociateOrganization()
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});

it('ENT-D-02-T01 | removes a Member from admin', function(done) {
trello.enterprises(enterpriseId).removeMemberFromAdmin()
.then(logResponse)
.should.eventually.be.fulfilled
.notify(done);
});
});
});

0 comments on commit 743609d

Please sign in to comment.