Files
electerm--electerm/test/unit/ip-check.spec.js
T
2026-07-13 12:46:20 +08:00

43 lines
1.3 KiB
JavaScript

const {
test: it, expect
} = require('@playwright/test')
const { describe } = it
it.setTimeout(100000)
function isValidIP (input) {
// Check IPv4 format
const ipv4Pattern = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
if (ipv4Pattern.test(input)) {
return true
}
// Check IPv6 format
const ipv6Pattern = /^([\da-f]{1,4}:){7}[\da-f]{1,4}$/i
if (ipv6Pattern.test(input)) {
return true
}
// If input doesn't match IPv4 or IPv6 patterns, it's not a valid IP
return false
}
describe('isValidIP', () => {
it('should return true for valid IPv4 addresses', () => {
expect(isValidIP('192.168.0.1')).toBe(true)
expect(isValidIP('10.0.0.1')).toBe(true)
expect(isValidIP('172.16.0.1')).toBe(true)
})
it('should return true for valid IPv6 addresses', () => {
expect(isValidIP('2001:0db8:85a3:0000:0000:8a2e:0370:7334')).toBe(true)
expect(isValidIP('2001:db8:85a3:0:0:8a2e:370:7334')).toBe(true)
expect(isValidIP('2001:db8:85a3::8a2e:370:7334')).toBe(true)
})
it('should return false for invalid IP addresses', () => {
expect(isValidIP('192.168.0.256')).toBe(false)
expect(isValidIP('2001:db8:85a3:0:0:8a2e:370g:7334')).toBe(false)
expect(isValidIP('not-an-ip-address')).toBe(false)
})
})