Skip to content

Commit c266d4f

Browse files
committed
fix
1 parent 74cc5fe commit c266d4f

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"svelte": ">=4.0.0-0"
3+
}

tests/utils/utils.ts

+36-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import * as typescriptESLintParser from "@typescript-eslint/parser"
88
import plugin = require("../../src/index")
99
import { applyFixes } from "./source-code-fixer"
1010
import { parse as parseYaml, stringify as stringifyYaml } from "yaml"
11+
import semver from "semver"
1112

1213
/**
1314
* Prevents leading spaces in a multiline template literal from appearing in the resulting string
@@ -86,7 +87,27 @@ export function loadTestCases(
8687
const validFixtureRoot = path.resolve(rootDir, `./valid/`)
8788
const invalidFixtureRoot = path.resolve(rootDir, `./invalid/`)
8889

89-
const filter = options?.filter ?? (() => true)
90+
const fileNameFilter = options?.filter ?? (() => true)
91+
92+
function filter(inputFile: string) {
93+
if (!fileNameFilter(inputFile)) {
94+
return false
95+
}
96+
const requirements = getRequirements(inputFile)
97+
if (
98+
Object.entries(requirements).some(([pkgName, pkgVersion]) => {
99+
const pkg =
100+
pkgName === "node"
101+
? { version: process.version }
102+
: // eslint-disable-next-line @typescript-eslint/no-require-imports -- test
103+
require(`${pkgName}/package.json`)
104+
return !semver.satisfies(pkg.version, pkgVersion)
105+
})
106+
) {
107+
return false
108+
}
109+
return true
110+
}
90111

91112
const valid = listupInput(validFixtureRoot)
92113
.filter(filter)
@@ -293,3 +314,17 @@ function getConfig(ruleName: string, inputFile: string) {
293314
{ code, filename: inputFile },
294315
)
295316
}
317+
318+
function getRequirements(inputFile: string): Record<string, string> {
319+
let requirementsFile: string = inputFile.replace(
320+
/input\.[a-z]+$/u,
321+
"requirements.json",
322+
)
323+
if (!fs.existsSync(requirementsFile)) {
324+
requirementsFile = path.join(path.dirname(inputFile), "_requirements.json")
325+
}
326+
if (fs.existsSync(requirementsFile)) {
327+
return JSON.parse(fs.readFileSync(requirementsFile, "utf8"))
328+
}
329+
return {}
330+
}

0 commit comments

Comments
 (0)