Skip to content

test:coverage, add coverage report script#202

Merged
whitequark merged 1 commit into
whitequark:mainfrom
msimerson:coverage
May 6, 2026
Merged

test:coverage, add coverage report script#202
whitequark merged 1 commit into
whitequark:mainfrom
msimerson:coverage

Conversation

@msimerson

Copy link
Copy Markdown
Contributor

output looks like this:

ipaddr.js ➜ npm run test:coverage

> ipaddr.js@2.4.0 test:coverage
> node --test --experimental-test-coverage

▶ ipaddr
  ✔ should define main classes (1.097125ms)
  ✔ can construct IPv4 from octets (0.105708ms)
  ✔ refuses to construct invalid IPv4 (0.101292ms)
  ✔ converts IPv4 to string correctly (0.065459ms)
  ✔ converts IPv4 CIDR to string correctly (0.297208ms)
  ✔ returns correct kind for IPv4 (0.040792ms)
  ✔ allows to access IPv4 octets (0.033208ms)
  ✔ checks IPv4 address format (0.204833ms)
  ✔ validates IPv4 addresses (0.208917ms)
  ✔ validates IPv4 addresses in CIDR notation (0.075084ms)
  ✔ parses IPv4 in several weird formats (0.453667ms)
  ✔ barfs at invalid IPv4 (0.081584ms)
  ✔ matches IPv4 CIDR correctly (0.083708ms)
  ✔ parses CIDR reversible (0.6325ms)
  ✔ parses IPv4 CIDR correctly (0.096792ms)
  ✔ detects reserved IPv4 networks (0.123916ms)
  ✔ checks the conventional IPv4 address format (0.069792ms)
  ✔ checks the conventional IPv4 CIDR format (0.056709ms)
  ✔ refuses to construct IPv4 address with trailing and leading zeros (0.050291ms)
  ✔ can construct IPv6 from 16bit parts (0.026417ms)
  ✔ can construct IPv6 from 8bit parts (0.039208ms)
  ✔ refuses to construct invalid IPv6 (0.063041ms)
  ✔ converts IPv6 to string correctly (0.09875ms)
  ✔ converts IPv6 CIDR to string correctly (0.062417ms)
  ✔ converts IPv6 to RFC 5952 string correctly (0.068083ms)
  ✔ returns IPv6 zoneIndex (0.08825ms)
  ✔ returns IPv6 zoneIndex for IPv4-mapped IPv6 addresses (0.167291ms)
  ✔ returns correct kind for IPv6 (0.028166ms)
  ✔ allows to access IPv6 address parts (0.022ms)
  ✔ checks IPv6 address format (0.055ms)
  ✔ validates IPv6 addresses (0.189875ms)
  ✔ validates IPv6 addresses in CIDR notation (0.127084ms)
  ✔ parses IPv6 in different formats (0.078ms)
  ✔ barfs at invalid IPv6 (0.042959ms)
  ✔ matches IPv6 CIDR correctly (0.076416ms)
  ✔ parses IPv6 CIDR correctly (0.098708ms)
  ✔ converts between IPv4-mapped IPv6 addresses and IPv4 addresses (0.074292ms)
  ✔ refuses to convert non-IPv4-mapped IPv6 address to IPv4 address (0.046292ms)
  ✔ detects reserved IPv6 networks (0.226041ms)
  ✔ is able to determine IP address type (0.052458ms)
  ✔ throws an error if tried to parse an invalid address (0.072833ms)
  ✔ correctly processes IPv4-mapped addresses (0.085417ms)
  ✔ correctly converts IPv6 and IPv4 addresses to byte arrays (0.058709ms)
  ✔ correctly parses 1 as an IPv4 address (0.031083ms)
  ✔ correctly detects IPv4 and IPv6 CIDR addresses (0.055375ms)
  ✔ does not consider a very large or very small number a valid IP address (0.051333ms)
  ✔ does not hang on ::8:8:8:8:8:8:8:8:8 (0.050625ms)
  ✔ subnetMatch does not fail on empty range (0.032ms)
  ✔ subnetMatch returns default subnet on empty range (0.024666ms)
  ✔ subnetMatch does not fail on IPv4 when looking for IPv6 (0.02975ms)
  ✔ subnetMatch does not fail on IPv6 when looking for IPv4 (0.037667ms)
  ✔ subnetMatch can use a hybrid IPv4/IPv6 range list (0.049917ms)
  ✔ is able to determine IP address type from byte array input (0.049417ms)
  ✔ prefixLengthFromSubnetMask returns proper CIDR notation for standard IPv4 masks (0.179083ms)
  ✔ prefixLengthFromSubnetMask returns proper CIDR notation for standard IPv6 masks (0.105625ms)
  ✔ subnetMaskFromPrefixLength returns correct IPv4 subnet mask given prefix length (0.113792ms)
  ✔ subnetMaskFromPrefixLength returns correct IPv6 subnet mask given prefix length (0.079459ms)
  ✔ broadcastAddressFromCIDR returns correct IPv4 broadcast address (0.062ms)
  ✔ networkAddressFromCIDR returns correct IPv4 network address (0.0595ms)
  ✔ networkAddressFromCIDR returns correct IPv6 network address (0.117125ms)
  ✔ broadcastAddressFromCIDR returns correct IPv6 broadcast address (0.096333ms)
✔ ipaddr (7.990833ms)
ℹ tests 61
ℹ suites 1
ℹ pass 61
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 62.808875
ℹ start of coverage report
ℹ ---------------------------------------------------------------------------------------------------------------------
ℹ file         | line % | branch % | funcs % | uncovered lines
ℹ ---------------------------------------------------------------------------------------------------------------------
ℹ lib          |        |          |         | 
ℹ  ipaddr.js   |  97.32 |    94.09 |   98.44 | 109-110 237-238 330-331 397-398 511-512 635-636 726-727 821-822 853-85…
ℹ ---------------------------------------------------------------------------------------------------------------------
ℹ all files    |  97.32 |    94.09 |   98.44 | 
ℹ ---------------------------------------------------------------------------------------------------------------------
ℹ end of coverage report

@msimerson msimerson marked this pull request as ready for review May 6, 2026 23:14
@whitequark whitequark merged commit 3dd474f into whitequark:main May 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants