diff --git a/lib/middleware/debug.test.ts b/lib/middleware/debug.test.ts new file mode 100644 index 0000000000..bf7071b1ce --- /dev/null +++ b/lib/middleware/debug.test.ts @@ -0,0 +1,52 @@ +import { describe, expect, it, afterAll } from '@jest/globals'; +import supertest from 'supertest'; +import server from '@/index'; +import { load } from 'cheerio'; + +process.env.NODE_NAME = 'mock'; + +const request = supertest(server); +let gitHash; +try { + gitHash = require('git-rev-sync').short(); +} catch { + gitHash = (process.env.HEROKU_SLUG_COMMIT && process.env.HEROKU_SLUG_COMMIT.slice(0, 7)) || 'unknown'; +} + +afterAll(() => { + server.close(); +}); + +describe('debug', () => { + it('debug', async () => { + const response1 = await request.get('/test/1'); + const etag = response1.headers.etag; + await request.get('/test/1').set('If-None-Match', etag); + await request.get('/test/2'); + await request.get('/test/empty'); + await request.get('/test/empty'); + + const response = await request.get('/'); + + const $ = load(response.text); + $('.debug-item').each((index, item) => { + const key = $(item).find('.debug-key').html()?.trim(); + const value = $(item).find('.debug-value').html()?.trim(); + switch (key) { + case 'Node Name:': + expect(value).toBe('mock'); + break; + case 'Git Hash:': + expect(value).toBe(gitHash); + break; + case 'Request Amount:': + expect(value).toBe('6'); + break; + case 'ETag Matched:': + expect(value).toBe('1'); + break; + default: + } + }); + }); +}); diff --git a/test/middleware/debug.js b/test/middleware/debug.js deleted file mode 100644 index 13900952d9..0000000000 --- a/test/middleware/debug.js +++ /dev/null @@ -1,64 +0,0 @@ -process.env.NODE_NAME = 'mock'; - -const supertest = require('supertest'); -jest.mock('request-promise-native'); -const server = require('../../lib/index'); -const request = supertest(server); -const cheerio = require('cheerio'); -let gitHash; -try { - gitHash = require('git-rev-sync').short(); -} catch { - gitHash = (process.env.HEROKU_SLUG_COMMIT && process.env.HEROKU_SLUG_COMMIT.slice(0, 7)) || 'unknown'; -} - -afterAll(() => { - server.close(); -}); - -describe('debug', () => { - it('debug', async () => { - const response1 = await request.get('/test/1').set('X-Forwarded-For', '233.233.233.233'); - const etag = response1.headers.etag; - await request.get('/test/1').set('If-None-Match', etag).set('X-Forwarded-For', '233.233.233.233'); - await request.get('/test/1').set('X-Forwarded-For', '233.233.233.234'); - await request.get('/test/2').set('X-Forwarded-For', '233.233.233.233'); - await request.get('/test/2').set('X-Forwarded-For', '233.233.233.234'); - await request.get('/test/empty').set('X-Forwarded-For', '233.233.233.233'); - await request.get('/test/empty').set('X-Forwarded-For', '233.233.233.234'); - - const response = await request.get('/').set('X-Forwarded-For', '233.233.233.233'); - - const $ = cheerio.load(response.text); - $('.debug-item').each((index, item) => { - const key = $(item).find('.debug-key').html().trim(); - const value = $(item).find('.debug-value').html().trim(); - switch (key) { - case 'Node Name:': - expect(value).toBe('mock'); - break; - case 'Git Hash:': - expect(value).toBe(gitHash); - break; - case 'Request Amount:': - expect(value).toBe('8'); - break; - case 'ETag Matched:': - expect(value).toBe('1'); - break; - case 'Hot Routes:': - expect(value).toBe('3 /test/:id
'); - break; - case 'Hot Paths:': - expect(value).toBe('3 /test/1
2 /test/2
2 /test/empty
1 /
'); - break; - case 'Hot Error Routes:': - expect(value).toBe('1 /test/:id
'); - break; - case 'Hot Error Paths:': - expect(value).toBe('2 /test/empty
'); - break; - } - }); - }); -});