Skip to content

Instantly share code, notes, and snippets.

@nwamugo
Last active March 24, 2019 21:51
Show Gist options
  • Save nwamugo/14a5a8e21beb481b86df93b7a5fb7ee5 to your computer and use it in GitHub Desktop.
Save nwamugo/14a5a8e21beb481b86df93b7a5fb7ee5 to your computer and use it in GitHub Desktop.
Test demo for team Zinnia
import request from 'supertest';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import app from '../app';
chai.use(chaiAsPromised);
const { expect } = chai;
const server = request(app);
const teamMembers = ['Osuh', 'Daniel', 'Edidiong', 'Opara', 'Ennim', 'Favour', 'Ugoji'];
describe('zinnia team', () => {
after(() => {
app.server.close();
});
context('team completeness', () => {
it('should be a team of 7', () => {
const size = teamMembers.length;
expect(teamMembers).to.not.be.null;
expect(size).to.equal(7);
)};
)};
)};
@musonant
Copy link

Is there a reason why app seems to be tested when, however, the test is on teamMembers?

@NedyUdombat
Copy link

I love the simplicity of the test, however I need clarification on some concepts

  1. Why does the first describe statement say 'app', shouldn't it say something like 'Test for Users' or something more descriptive?
  2. Why did you store teamMembers.length in a variable if it will only be used in that scope?

@nwamugo
Copy link
Author

nwamugo commented Mar 19, 2019

Is there a reason why app seems to be tested when, however, the test is on teamMembers?

Eagle Eye! Thank you. I will edit to properly reflect the file I'm in

@nwamugo
Copy link
Author

nwamugo commented Mar 19, 2019

I love the simplicity of the test, however I need clarification on some concepts

  1. Why does the first describe statement say 'app', shouldn't it say something like 'Test for Users' or something more descriptive?
  2. Why did you store teamMembers.length in a variable if it will only be used in that scope?

Thank you. Number 1 question issue has been corrected. And the describe is more apt on what it is testing
For question 2, I adopted a practice of capturing a calculation and saving it in a variable, so that the calculation process will not happen again should I need it somewhere else. In this small example, it may seem over-kill. But its value will shine when scaling.

Thank you for the review. Awesome!

@igbominadeveloper
Copy link

So I don't leave here without a comment, you could replace the let for size with const since the variable is a constant. Eslint would probably flag it too. Great test suite though, well descriptive

@nwamugo
Copy link
Author

nwamugo commented Mar 24, 2019

So I don't leave here without a comment, you could replace the let for size with const since the variable is a constant. Eslint would probably flag it too. Great test suite though, well descriptive

Thank you for the feedback. I have now improved the code to reflect the suggestion you made. Improved!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment