fix: export build403Html, add unit test for undefined IP fallback
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import Fastify from 'fastify'
|
import Fastify from 'fastify'
|
||||||
import { afterEach, beforeEach, describe, expect, it } from 'vitest'
|
import { afterEach, beforeEach, describe, expect, it } from 'vitest'
|
||||||
import { registerIpGate } from '../ip-gate.js'
|
import { build403Html, registerIpGate } from '../ip-gate.js'
|
||||||
|
|
||||||
function buildApp() {
|
function buildApp() {
|
||||||
const app = Fastify({ logger: false, trustProxy: true })
|
const app = Fastify({ logger: false, trustProxy: true })
|
||||||
@@ -55,6 +55,18 @@ describe('registerIpGate', () => {
|
|||||||
expect(res.body).toContain('9.9.9.9')
|
expect(res.body).toContain('9.9.9.9')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('build403Html показывает "не определён" когда IP не передан', () => {
|
||||||
|
const html = build403Html()
|
||||||
|
expect(html).toContain('не определён')
|
||||||
|
expect(html).toContain('Любимый Креатив')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('build403Html показывает переданный IP', () => {
|
||||||
|
const html = build403Html('9.9.9.9')
|
||||||
|
expect(html).toContain('9.9.9.9')
|
||||||
|
expect(html).not.toContain('не определён')
|
||||||
|
})
|
||||||
|
|
||||||
it('403-страница показывает IP по умолчанию (127.0.0.1) когда remoteAddress не указан', async () => {
|
it('403-страница показывает IP по умолчанию (127.0.0.1) когда remoteAddress не указан', async () => {
|
||||||
process.env.SITE_ACCESS_IPS = '1.2.3.4'
|
process.env.SITE_ACCESS_IPS = '1.2.3.4'
|
||||||
const res = await app.inject({ method: 'GET', url: '/test' })
|
const res = await app.inject({ method: 'GET', url: '/test' })
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ function normalizeIp(ip) {
|
|||||||
return ip
|
return ip
|
||||||
}
|
}
|
||||||
|
|
||||||
function build403Html(ip) {
|
export function build403Html(ip) {
|
||||||
const safeIp = ip || 'не определён'
|
const safeIp = ip || 'не определён'
|
||||||
return `<!DOCTYPE html>
|
return `<!DOCTYPE html>
|
||||||
<html lang="ru">
|
<html lang="ru">
|
||||||
|
|||||||
Reference in New Issue
Block a user