fix: better checks for implicit html routes #726
Annotations
7 errors
Test:
test/ci.test.ts#L45
Error: Command failed with exit code 1: node /home/runner/work/unlighthouse/unlighthouse/packages/unlighthouse/bin/unlighthouse-ci.cjs --root /home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590278914 --debug --site harlanzw.com
[warn] [Unlighthouse] Dynamic sampling is in effect, some of your routes will not be scanned. To disable this behavior, set `scanner.dynamicSampling` to `false`.
[error] Cannot read properties of undefined (reading 'length')
at matches (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:361:33)
at matchPathToRule (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:398:10)
at queueRoute (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:1469:20)
at /home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:1566:37
at Array.forEach (<anonymous>)
at Object.queueRoutes (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:1566:18)
at ctx.start (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:2040:12)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async run (/home/runner/work/unlighthouse/unlighthouse/packages/cli/dist/ci.mjs:358:22)
[debug] [Unlighthouse] Starting Unlighthouse at root: `/home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590278914` cwd: /home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590278914
[debug] [Unlighthouse] Discovered config definition { config:
{ site: 'https://harlanzw.com',
cache: false,
scanner: { device: 'desktop', throttle: false },
ci: { budget: [Object] },
lighthouseOptions: { onlyCategories: [Array] },
debug: true },
sources:
[ '/home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590278914/unlighthouse.config.ts' ],
dependencies:
[ 'file:///home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590278914/unlighthouse.config.ts' ] }
[debug] [Unlighthouse] Unable to locale page files, disabling route discovery.
[info] [Unlighthouse] Using system chrome located at: `/usr/bin/google-chrome-stable`.
[debug] [Unlighthouse] Post config resolution { routerPrefix: '/',
apiPrefix: '/api',
cache: false,
client:
{ groupRoutesKey: 'route.definition.name',
columns:
{ overview: [Array], accessibility: [Array], 'best-practices': [Array], seo: [Array] } },
scanner:
{ customSampling: {},
ignoreI18nPages: true,
maxRoutes: 200,
skipJavascript: true,
samples: 1,
throttle: false,
crawler: true,
dynamicSampling: 8,
sitemap: true,
robotsTxt: true,
device: 'desktop',
exclude: [ '/cdn-cgi/*' ] },
server: { port: 5678, showURL: false, open: true },
discovery: false,
root: '/home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590278914',
outputPath:
'/home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590278914/.unlighthouse',
debug: true,
puppeteerOptions:
{ headless: true,
ignoreHTTPSErrors: true,
timeout: 0,
protocolTimeout: 0,
defaultViewport:
{ mobile: false, width: 1350, height: 940, deviceScaleFactor: 1, disabled: false },
executablePath: '/usr/bin/google-chrome-stable' },
puppeteerClusterOptions:
{ timeout: 300000,
monitor: true,
workerCreationDelay: 500,
retryLimit: 3,
maxConcurrency: 3,
skipDuplicateUrls: false,
retryDelay: 2000,
concurrency: 3,
puppeteer:
PuppeteerNode {
_isPuppeteerCore: true,
_changedBrowsers: false,
connect: [Function: bound bound connect],
defaultBrowserRevision: '129.0.6668.58',
configuration: [Object],
launch: [Function: bound launch],
executablePath: [Function: bound executablePath],
defaultArgs: [Function: bound defaultArgs],
trimCache: [Function: bound trimCache] AsyncFunction } },
lighthouseOptions:
{ onlyCategories: [ 'accessibility', 'best-practices', 'seo' ],
throttlingMethod: 'simulate',
throttling:
{ rttMs: 150,
|
Test:
test/ci.test.ts#L45
Error: Command failed with exit code 1: node /home/runner/work/unlighthouse/unlighthouse/packages/unlighthouse/bin/unlighthouse-ci.cjs --root /home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590280697 --debug --site harlanzw.com
[warn] [Unlighthouse] Dynamic sampling is in effect, some of your routes will not be scanned. To disable this behavior, set `scanner.dynamicSampling` to `false`.
[error] Cannot read properties of undefined (reading 'length')
at matches (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:361:33)
at matchPathToRule (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:398:10)
at queueRoute (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:1469:20)
at /home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:1566:37
at Array.forEach (<anonymous>)
at Object.queueRoutes (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:1566:18)
at ctx.start (/home/runner/work/unlighthouse/unlighthouse/packages/core/dist/index.mjs:2040:12)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async run (/home/runner/work/unlighthouse/unlighthouse/packages/cli/dist/ci.mjs:358:22)
[debug] [Unlighthouse] Starting Unlighthouse at root: `/home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590280697` cwd: /home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590280697
[debug] [Unlighthouse] Discovered config definition { config:
{ site: 'https://harlanzw.com',
cache: false,
scanner: { device: 'desktop', throttle: false },
ci: { budget: [Object], reporter: 'jsonExpanded' },
debug: true },
sources:
[ '/home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590280697/unlighthouse.config.ts' ],
dependencies:
[ 'file:///home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590280697/unlighthouse.config.ts' ] }
[debug] [Unlighthouse] Unable to locale page files, disabling route discovery.
[info] [Unlighthouse] Using system chrome located at: `/usr/bin/google-chrome-stable`.
[debug] [Unlighthouse] Post config resolution { routerPrefix: '/',
apiPrefix: '/api',
cache: false,
client:
{ groupRoutesKey: 'route.definition.name',
columns:
{ overview: [Array],
performance: [Array],
accessibility: [Array],
'best-practices': [Array],
seo: [Array] } },
scanner:
{ customSampling: {},
ignoreI18nPages: true,
maxRoutes: 200,
skipJavascript: true,
samples: 1,
throttle: false,
crawler: true,
dynamicSampling: 8,
sitemap: true,
robotsTxt: true,
device: 'desktop',
exclude: [ '/cdn-cgi/*' ] },
server: { port: 5678, showURL: false, open: true },
discovery: false,
root: '/home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590280697',
outputPath:
'/home/runner/work/unlighthouse/unlighthouse/test/.cache/1727590280697/.unlighthouse',
debug: true,
puppeteerOptions:
{ headless: true,
ignoreHTTPSErrors: true,
timeout: 0,
protocolTimeout: 0,
defaultViewport:
{ mobile: false, width: 1350, height: 940, deviceScaleFactor: 1, disabled: false },
executablePath: '/usr/bin/google-chrome-stable' },
puppeteerClusterOptions:
{ timeout: 300000,
monitor: true,
workerCreationDelay: 500,
retryLimit: 3,
maxConcurrency: 3,
skipDuplicateUrls: false,
retryDelay: 2000,
concurrency: 3,
puppeteer:
PuppeteerNode {
_isPuppeteerCore: true,
_changedBrowsers: false,
connect: [Function: bound bound connect],
defaultBrowserRevision: '129.0.6668.58',
configuration: [Object],
launch: [Function: bound launch],
executablePath: [Function: bound executablePath],
defaultArgs: [Function: bound defaultArgs],
trimCache: [Function: bound trimCache] AsyncFunction } },
lighthouseOptions:
{ onlyCategories: [ 'performance', 'accessibility', 'best-practices', 'seo' ],
throttlingMethod: 'simulate
|
Test:
packages/core/test/robots.test.ts#L19
Error: Snapshot `robots > parses example #1 1` mismatched
- Expected
+ Received
@@ -1,8 +1,10 @@
{
"groups": [
{
+ "_indexable": true,
+ "_rules": [],
"allow": [],
"comment": [],
"disallow": [
"",
],
❯ packages/core/test/robots.test.ts:19:20
|
Test:
packages/core/test/robots.test.ts#L50
Error: Snapshot `robots > parses example #2 1` mismatched
- Expected
+ Received
@@ -1,8 +1,35 @@
{
"groups": [
{
+ "_indexable": true,
+ "_rules": [
+ {
+ "allow": false,
+ "pattern": "/account/",
+ },
+ {
+ "allow": false,
+ "pattern": "/dashboard/",
+ },
+ {
+ "allow": false,
+ "pattern": "/admin/",
+ },
+ {
+ "allow": false,
+ "pattern": "/mod/",
+ },
+ {
+ "allow": true,
+ "pattern": "/$",
+ },
+ {
+ "allow": true,
+ "pattern": "/wiki/",
+ },
+ ],
"allow": [
"/$",
"/wiki/",
],
"comment": [],
❯ packages/core/test/robots.test.ts:50:20
|
Test:
packages/core/test/robots.test.ts#L141
Error: Snapshot `robots > parsed example #3 1` mismatched
- Expected
+ Received
@@ -1,8 +1,103 @@
{
"groups": [
{
+ "_indexable": true,
+ "_rules": [
+ {
+ "allow": false,
+ "pattern": "/CVS",
+ },
+ {
+ "allow": false,
+ "pattern": "/*.svn$",
+ },
+ {
+ "allow": false,
+ "pattern": "/*.idea$",
+ },
+ {
+ "allow": false,
+ "pattern": "/*.sql$",
+ },
+ {
+ "allow": false,
+ "pattern": "/*.tgz$",
+ },
+ {
+ "allow": false,
+ "pattern": "*brand=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*color=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*color_filter=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*material_filter=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*fitting_filter=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*asc=price*",
+ },
+ {
+ "allow": false,
+ "pattern": "*desc=price*",
+ },
+ {
+ "allow": false,
+ "pattern": "*asc=name*",
+ },
+ {
+ "allow": false,
+ "pattern": "*desc=name*",
+ },
+ {
+ "allow": false,
+ "pattern": "*food_type=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*tags=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*size=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*search=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*popup=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*successRedirect=*",
+ },
+ {
+ "allow": false,
+ "pattern": "*/user/*",
+ },
+ {
+ "allow": false,
+ "pattern": "*/checkout/*",
+ },
+ {
+ "allow": false,
+ "pattern": "*/wishlist/*",
+ },
+ ],
"allow": [],
"comment": [],
"disallow": [
"/CVS",
"/*.svn$",
❯ packages/core/test/robots.test.ts:141:20
|
Test:
packages/core/test/robots.test.ts#L272
Error: Snapshot `robots > parses example #4 1` mismatched
- Expected
+ Received
@@ -1,8 +1,147 @@
{
"groups": [
{
+ "_indexable": true,
+ "_rules": [
+ {
+ "allow": false,
+ "pattern": "/admin",
+ },
+ {
+ "allow": false,
+ "pattern": "/cart",
+ },
+ {
+ "allow": false,
+ "pattern": "/orders",
+ },
+ {
+ "allow": false,
+ "pattern": "/checkouts/",
+ },
+ {
+ "allow": false,
+ "pattern": "/checkout",
+ },
+ {
+ "allow": false,
+ "pattern": "/58606747799/checkouts",
+ },
+ {
+ "allow": false,
+ "pattern": "/58606747799/orders",
+ },
+ {
+ "allow": false,
+ "pattern": "/carts",
+ },
+ {
+ "allow": false,
+ "pattern": "/account",
+ },
+ {
+ "allow": false,
+ "pattern": "/collections/*sort_by*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/collections/*sort_by*",
+ },
+ {
+ "allow": false,
+ "pattern": "/collections/*+*",
+ },
+ {
+ "allow": false,
+ "pattern": "/collections/*%2B*",
+ },
+ {
+ "allow": false,
+ "pattern": "/collections/*%2b*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/collections/*+*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/collections/*%2B*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/collections/*%2b*",
+ },
+ {
+ "allow": false,
+ "pattern": "/blogs/*+*",
+ },
+ {
+ "allow": false,
+ "pattern": "/blogs/*%2B*",
+ },
+ {
+ "allow": false,
+ "pattern": "/blogs/*%2b*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/blogs/*+*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/blogs/*%2B*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/blogs/*%2b*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*?*oseid=*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*preview_theme_id*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*preview_script_id*",
+ },
+ {
+ "allow": false,
+ "pattern": "/policies/",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/*?*ls=*&ls=*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/*?*ls%3D*%3Fls%3D*",
+ },
+ {
+ "allow": false,
+ "pattern": "/*/*?*ls%3d*%3fls%3d*",
+ },
+ {
+ "allow": false,
+ "pattern": "/search",
+ },
+ {
+ "allow": false,
+ "pattern": "/apple-app-site-association",
+ },
+ {
+ "allow": false,
+ "pattern": "/.well-known/shopify/monorail",
+ },
+ {
+ "allow": false,
+ "pattern": "/cdn/wpm/*.js",
+ },
+ ],
"allow": [],
"comment": [],
"disallow": [
"/admin",
"/cart",
❯ packages/core/test/robots.test.ts:272:20
|
Test
Process completed with exit code 1.
|
Loading