diff --git a/package.json b/package.json index 5c79be8..7b73e4b 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "start": "node index.js", "dev": "nodemon ./index.js", - "test": "mocha", + "test": "mocha \"test/**/*.test.js\"", "grunt": "grunt" }, "repository": { diff --git a/test/app.test.js b/test/app.test.js index b825e5a..a10b3f0 100644 --- a/test/app.test.js +++ b/test/app.test.js @@ -3,8 +3,16 @@ const { expect } = require('chai'); const app = require('../src/app'); describe('GET /', () => { - it('should run the app server', async () => { + beforeEach(async () => { const res = await request(app).get('/'); - expect(res.status).to.equal(200); + this.res = res; + }); + + it('should run the app server', async () => { + expect(this.res.status).to.equal(200); + }); + + it('should return an HTML response', async () => { + expect(this.res.headers['content-type']).match(/text\/html/); }); }); diff --git a/test/routes/benchmark.test.js b/test/routes/benchmark.test.js new file mode 100644 index 0000000..a0e33e7 --- /dev/null +++ b/test/routes/benchmark.test.js @@ -0,0 +1,33 @@ +const request = require('supertest'); +const { expect } = require('chai'); +const app = require('../../src/app'); + +describe('GET /benchmark', () => { + beforeEach(async () => { + const res = await request(app).get('/benchmark'); + this.res = res; + }); + + it('should return a redirect', async () => { + expect(this.res.status).to.equal(302); + }); + + it('should redirect to /benchmark/list', async () => { + expect(this.res.headers['location']).contains('/benchmark/list'); + }); +}); + +describe('GET /benchmark/list', () => { + beforeEach(async () => { + const res = await request(app).get('/benchmark/list'); + this.res = res; + }); + + it('should return a 200 status', async () => { + expect(this.res.status).to.equal(200); + }); + + it('should return an HTML response', async () => { + expect(this.res.headers['content-type']).match(/text\/html/); + }); +}); diff --git a/test/routes/hardware.test.js b/test/routes/hardware.test.js new file mode 100644 index 0000000..13d0fa7 --- /dev/null +++ b/test/routes/hardware.test.js @@ -0,0 +1,33 @@ +const request = require('supertest'); +const { expect } = require('chai'); +const app = require('../../src/app'); + +describe('GET /hardware', () => { + beforeEach(async () => { + const res = await request(app).get('/hardware'); + this.res = res; + }); + + it('should return a redirect', async () => { + expect(this.res.status).to.equal(302); + }); + + it('should redirect to /hardware/list', async () => { + expect(this.res.headers['location']).contains('/hardware/list'); + }); +}); + +describe('GET /hardware/list', () => { + beforeEach(async () => { + const res = await request(app).get('/hardware/list'); + this.res = res; + }); + + it('should return a 200 status', async () => { + expect(this.res.status).to.equal(200); + }); + + it('should return an HTML response', async () => { + expect(this.res.headers['content-type']).match(/text\/html/); + }); +}); diff --git a/test/routes/test.test.js b/test/routes/test.test.js new file mode 100644 index 0000000..6f9fc85 --- /dev/null +++ b/test/routes/test.test.js @@ -0,0 +1,33 @@ +const request = require('supertest'); +const { expect } = require('chai'); +const app = require('../../src/app'); + +describe('GET /test', () => { + beforeEach(async () => { + const res = await request(app).get('/test'); + this.res = res; + }); + + it('should return a redirect', async () => { + expect(this.res.status).to.equal(302); + }); + + it('should redirect to /test/list', async () => { + expect(this.res.headers['location']).contains('/test/list'); + }); +}); + +describe('GET /test/list', () => { + beforeEach(async () => { + const res = await request(app).get('/test/list'); + this.res = res; + }); + + it('should return a 200 status', async () => { + expect(this.res.status).to.equal(200); + }); + + it('should return an HTML response', async () => { + expect(this.res.headers['content-type']).match(/text\/html/); + }); +}); diff --git a/test/routes/toplevel.test.js b/test/routes/toplevel.test.js new file mode 100644 index 0000000..3d07f0d --- /dev/null +++ b/test/routes/toplevel.test.js @@ -0,0 +1,18 @@ +const request = require('supertest'); +const { expect } = require('chai'); +const app = require('../../src/app'); + +describe('GET /', () => { + beforeEach(async () => { + const res = await request(app).get('/'); + this.res = res; + }); + + it('should return a 200 status', async () => { + expect(this.res.status).to.equal(200); + }); + + it('should return an HTML response', async () => { + expect(this.res.headers['content-type']).match(/text\/html/); + }); +});