Mocha API Testing: getting 'TypeError: app.address is not a function'

This may also help, and satisfies @dman point of changing application code to fit a test.

make your request to the localhost and port as needed chai.request('http://localhost:5000')

instead of

chai.request(server)

this fixed the same error message I had using Koa JS (v2) and ava js.


You don't export anything in your app module. Try adding this to your app.js file:

module.exports = server

It's important to export the http.Server object returned by app.listen(3000) instead of just the function app, otherwise you will get TypeError: app.address is not a function.

Example:

index.js

const koa = require('koa');
const app = new koa();
module.exports = app.listen(3000);

index.spec.js

const request = require('supertest');
const app = require('./index.js');

describe('User Registration', () => {
  const agent = request.agent(app);

  it('should ...', () => {