rsnext/test/unit/create-client-router-filter.test.ts
JJ Kasper 68cecd6a3a
Update default error rate for client filter (#60542)
This updates our default error rate to be much more precise and reduce
false positives by increasing the default size of the client filter we
generate. We can afford to increase the default size as it compresses
extremely well and gives us more accurate navigations. This carries over
the failing test case from https://github.com/vercel/next.js/pull/59293
which showed one case of false positive in a smaller filter.

Closes: https://github.com/vercel/next.js/issues/47486

Closes NEXT-2070

---------

Co-authored-by: Cris Vergara <cris.vergara@bookofthemonth.com>
2024-01-11 17:51:53 -08:00

29 lines
997 B
TypeScript

/* eslint-env jest */
import { createClientRouterFilter } from 'next/dist/lib/create-client-router-filter'
import { BloomFilter } from 'next/dist/shared/lib/bloom-filter'
describe('createClientRouterFilter', () => {
it('creates a filter that does not collide with wildly different path names', () => {
const { staticFilter, dynamicFilter } = createClientRouterFilter(
['/_not-found', '/a/[lang]/corporate', '/a/[lang]/gift'], // Routes are based on BOTM's app router migration project.
[]
)
const staticFilterInstance = new BloomFilter(
staticFilter.numItems,
staticFilter.errorRate
)
staticFilterInstance.import(staticFilter)
const dynamicFilterInstance = new BloomFilter(
dynamicFilter.numItems,
dynamicFilter.errorRate
)
dynamicFilterInstance.import(dynamicFilter)
expect(
staticFilterInstance.contains(
'/all-hardcovers/no-one-can-know-1511?category=current-features'
)
).toBe(false)
})
})