1+ const proxyquire = require ( 'proxyquire' ) . noCallThru ( ) ;
2+ const request = require ( 'supertest' ) ;
3+ const { expect } = require ( 'chai' ) ;
4+ const express = require ( 'express' ) ;
5+
6+ describe ( 'Server' , function ( ) {
7+ let app ;
8+ let server ;
9+
10+ // Mock route handlers
11+ const idPlusRoute = express . Router ( ) . get ( '/' , ( req , res ) => res . json ( { route : 'id_plus' } ) ) ;
12+ const docvRoute = express . Router ( ) . get ( '/' , ( req , res ) => res . json ( { route : 'docv' } ) ) ;
13+ const dosRoute = express . Router ( ) . get ( '/' , ( req , res ) => res . json ( { route : 'dos' } ) ) ;
14+
15+ before ( function ( ) {
16+ // Proxyquire to inject mocks
17+ app = proxyquire ( '../server' , {
18+ './routes/id_plus' : idPlusRoute ,
19+ './routes/docv' : docvRoute ,
20+ './routes/dos' : dosRoute ,
21+ dotenv : { config : ( ) => { } }
22+ } ) ;
23+
24+ server = app ;
25+ } ) ;
26+
27+ it ( 'should mount /api/3.0/EmailAuthScore' , async function ( ) {
28+ const res = await request ( server ) . get ( '/api/3.0/EmailAuthScore' ) ;
29+ expect ( res . status ) . to . equal ( 200 ) ;
30+ expect ( res . body . route ) . to . equal ( 'id_plus' ) ;
31+ } ) ;
32+
33+ it ( 'should mount /docv' , async function ( ) {
34+ const res = await request ( server ) . get ( '/docv' ) ;
35+ expect ( res . status ) . to . equal ( 200 ) ;
36+ expect ( res . body . route ) . to . equal ( 'docv' ) ;
37+ } ) ;
38+
39+ it ( 'should mount /dos' , async function ( ) {
40+ const res = await request ( server ) . get ( '/dos' ) ;
41+ expect ( res . status ) . to . equal ( 200 ) ;
42+ expect ( res . body . route ) . to . equal ( 'dos' ) ;
43+ } ) ;
44+
45+ it ( 'should handle errors globally in production' , async function ( ) {
46+ server . get ( '/error' , ( req , res , next ) => { next ( new Error ( 'Test error' ) ) ; } ) ;
47+ const res = await request ( server ) . get ( '/error' ) ;
48+ expect ( res . status ) . to . equal ( 500 ) ;
49+ expect ( res . body ) . to . have . property ( 'error' , 'Internal Server Error' ) ;
50+ } ) ;
51+ } ) ;
0 commit comments