mirror of
https://github.com/nestjs/nest.git
synced 2026-02-21 23:11:44 +00:00
test(): add tests for global version with Media Type Versioning
This commit is contained in:
@@ -10,282 +10,664 @@ import { AppModule } from '../src/app.module';
|
||||
describe('Versioning (fastify)', () => {
|
||||
let app: INestApplication;
|
||||
|
||||
before(async () => {
|
||||
const moduleRef = await Test.createTestingModule({
|
||||
imports: [AppModule],
|
||||
}).compile();
|
||||
// ======================================================================== //
|
||||
describe('without global default version', () => {
|
||||
before(async () => {
|
||||
const moduleRef = await Test.createTestingModule({
|
||||
imports: [AppModule],
|
||||
}).compile();
|
||||
|
||||
app = moduleRef.createNestApplication<NestFastifyApplication>(
|
||||
new FastifyAdapter(),
|
||||
);
|
||||
app.enableVersioning({
|
||||
type: VersioningType.MEDIA_TYPE,
|
||||
key: 'v=',
|
||||
});
|
||||
await app.init();
|
||||
await app.getHttpAdapter().getInstance().ready();
|
||||
});
|
||||
|
||||
describe('GET /', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V1!');
|
||||
app = moduleRef.createNestApplication<NestFastifyApplication>(
|
||||
new FastifyAdapter(),
|
||||
);
|
||||
app.enableVersioning({
|
||||
type: VersioningType.MEDIA_TYPE,
|
||||
key: 'v=',
|
||||
});
|
||||
await app.init();
|
||||
await app.getHttpAdapter().getInstance().ready();
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V2!');
|
||||
describe('GET /', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V1!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V2!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /:param', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V1!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V2!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: '',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /multiple', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/multiple').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
describe('GET /neutral', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /override', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/override').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /override-partial', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /foo/bar', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /:param', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V1!');
|
||||
// ======================================================================== //
|
||||
describe('with the global default version: "1"', () => {
|
||||
before(async () => {
|
||||
const moduleRef = await Test.createTestingModule({
|
||||
imports: [AppModule],
|
||||
}).compile();
|
||||
|
||||
app = moduleRef.createNestApplication<NestFastifyApplication>(
|
||||
new FastifyAdapter(),
|
||||
);
|
||||
app.enableVersioning({
|
||||
type: VersioningType.MEDIA_TYPE,
|
||||
key: 'v=',
|
||||
defaultVersion: '1',
|
||||
});
|
||||
await app.init();
|
||||
await app.getHttpAdapter().getInstance().ready();
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V2!');
|
||||
describe('GET /', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V1!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V2!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /:param', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V1!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V2!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: '',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: '',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /multiple', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/multiple').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
describe('GET /neutral', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
describe('GET /multiple', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
describe('GET /override', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/override').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /override-partial', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /foo/bar', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/foo/bar').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/multiple').expect(404);
|
||||
after(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /neutral', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /override', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/override').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /override-partial', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/override-partial').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -6,279 +6,658 @@ import { AppModule } from '../src/app.module';
|
||||
describe('Versioning', () => {
|
||||
let app: INestApplication;
|
||||
|
||||
before(async () => {
|
||||
const moduleRef = await Test.createTestingModule({
|
||||
imports: [AppModule],
|
||||
}).compile();
|
||||
// ======================================================================== //
|
||||
describe('without global default version', () => {
|
||||
before(async () => {
|
||||
const moduleRef = await Test.createTestingModule({
|
||||
imports: [AppModule],
|
||||
}).compile();
|
||||
|
||||
app = moduleRef.createNestApplication();
|
||||
app.enableVersioning({
|
||||
type: VersioningType.MEDIA_TYPE,
|
||||
key: 'v=',
|
||||
});
|
||||
await app.init();
|
||||
});
|
||||
|
||||
describe('GET /', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V1!');
|
||||
app = moduleRef.createNestApplication();
|
||||
app.enableVersioning({
|
||||
type: VersioningType.MEDIA_TYPE,
|
||||
key: 'v=',
|
||||
});
|
||||
await app.init();
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V2!');
|
||||
describe('GET /', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V1!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V2!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /:param', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V1!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V2!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: '',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /multiple', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/multiple').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
describe('GET /neutral', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /override', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/override').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /override-partial', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /foo/bar', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /:param', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V1!');
|
||||
// ======================================================================== //
|
||||
describe('with the global default version: "1"', () => {
|
||||
before(async () => {
|
||||
const moduleRef = await Test.createTestingModule({
|
||||
imports: [AppModule],
|
||||
}).compile();
|
||||
|
||||
app = moduleRef.createNestApplication();
|
||||
app.enableVersioning({
|
||||
type: VersioningType.MEDIA_TYPE,
|
||||
key: 'v=',
|
||||
defaultVersion: '1',
|
||||
});
|
||||
await app.init();
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V2!');
|
||||
describe('GET /', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V1!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello World V2!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /:param', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V1!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Parameter V2!');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: '',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/param/hello')
|
||||
.set({
|
||||
Accept: '',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /multiple', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/multiple').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/').expect(404);
|
||||
});
|
||||
});
|
||||
describe('GET /neutral', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
describe('GET /multiple', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Multiple Versions 1 or 2');
|
||||
describe('GET /override', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/override').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /override-partial', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/multiple')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
describe('GET /foo/bar', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Hello FooBar!');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/foo/bar')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/foo/bar').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/multiple').expect(404);
|
||||
after(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /neutral', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/neutral')
|
||||
.expect(200)
|
||||
.expect('Neutral');
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /override', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/override').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /override-partial', () => {
|
||||
it('V1', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=1',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 1');
|
||||
});
|
||||
|
||||
it('V2', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=2',
|
||||
})
|
||||
.expect(200)
|
||||
.expect('Override Partial Version 2');
|
||||
});
|
||||
|
||||
it('V3', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json;v=3',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Version', () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/override-partial')
|
||||
.set({
|
||||
Accept: 'application/json',
|
||||
})
|
||||
.expect(404);
|
||||
});
|
||||
|
||||
it('No Header', () => {
|
||||
return request(app.getHttpServer()).get('/override-partial').expect(404);
|
||||
});
|
||||
});
|
||||
|
||||
after(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user