So here is how I get a list of all defined HTTP endpoints in my E2E test in a NestJS app with their default configuration and setup:
import { Test, TestingModule } from '@nestjs/testing';
import { SomeModule } from './some/where/some.module';
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [SomeModule],
}).compile();
const app = moduleFixture.createNestApplication();
await app.init();
console.log(
app
.getHttpServer()
._events.request.router.stack.filter((layer: any) => layer.route)
.map((layer: any) => ({
method: Object.keys(layer.route.methods)[0].toUpperCase(),
path: layer.route.path,
}))
)
This is mostly useful when I am banging my head against a brick wall as to why supertest says an endpoint does not exists (the infamous 404 error). So feel free to use this hack whenever you stock in the same spot :).
BTW feel free to like this post, subscribe and comment.
Instagram: https://www.instagram.com/node.js.developers.kh/
Facebook: https://www.facebook.com/kasirbarati
X: https://x.com/kasir_barati
YouTube: https://www.youtube.com/@kasir-barati
GitHub: https://github.com/kasir-barati/
Dev.to: https://dev.to/kasir-barati
LinkedIn: https://linkedin.com/in/kasir-barati
Top comments (0)