68cecd6a3a
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>
29 lines
997 B
TypeScript
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)
|
|
})
|
|
})
|