Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ jobs:
env:
MARKMV_TEST_FILESYSTEM_CASE_SENSITIVE: ${{ env.FILESYSTEM_IS_CASE_SENSITIVE }}
MARKMV_TEST_SUPPORTS_SYMLINKS: ${{ env.FILESYSTEM_SUPPORTS_SYMLINKS }}
run: pnpm run test:run
run: pnpm run test

- name: Report filesystem test results
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cross-platform-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ jobs:
echo "Symlinks: ${{ steps.filesystem.outputs.symlinks }}"

# Run tests with cross-platform environment
pnpm run test:run
pnpm run test
env:
MARKMV_TEST_CROSS_PLATFORM: "true"

Expand Down
2 changes: 1 addition & 1 deletion .husky/pre-push
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Typecheck and unit tests before push, to catch breakage before it reaches CI.
pnpm run typecheck
pnpm run test:run
pnpm run test

# actionlint gates CI workflows; warn-and-continue when the binary is missing locally (CI always runs it), so contributors without it are not blocked.
if command -v actionlint >/dev/null 2>&1; then
Expand Down
6 changes: 3 additions & 3 deletions docs-src/guides/cross-platform-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ npm run test:cross-platform:data
npm run test:cross-platform:cli

# Run with specific environment
MARKMV_TEST_CASE_SENSITIVE=false npm run test:run
MARKMV_TEST_CASE_SENSITIVE=false npm test
```

### Manual Testing
Expand Down Expand Up @@ -210,10 +210,10 @@ Enable debug output in tests:

```bash
# Enable verbose test output
npm run test:run -- --reporter=verbose
npx vitest run --reporter=verbose

# Run specific test file
npm run test:run -- src/utils/test-helpers.test.ts
npx vitest run src/utils/test-helpers.test.ts

# Check filesystem capabilities
node scripts/test-cross-platform.js --test-data-only
Expand Down
24 changes: 23 additions & 1 deletion eslint.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,29 @@ const publicModules = [
];

export default defineConfig(
...exadevConfig(),
...exadevConfig({
turbo: {},
// The `root` section is switched off on purpose: its knip check expects a script that runs knip itself, which the turbo convention (a public script delegating to `_knip`) rules out, so both cannot hold in a turbo repository (ExaDev/eslint-config#110).
toolingWiring: {
root: false,
hooks: true,
publish: { tools: ["publint", "attw"] },
},
importPolicies: [
{
files: ["src/**"],
ignores: ["**/*.test.ts", "src/test-support/**"],
deny: [
{
specifiers: ["src/test-support", "src/utils/test-helpers"],
message:
"test doubles and helpers stay out of shipped code; import them from tests only",
},
],
computedSpecifiers: "report",
},
],
}),
{
// Tracked but still not meant to be linted or reformatted: .d.ts is generated at build time, both lockfiles are machine-written, and CHANGELOG.md is entirely semantic-release output rewritten wholesale on every release -- all three are tracked, so .gitignore doesn't exclude them, and reformatting CHANGELOG.md by hand here would just be undone (noisily) by the next release anyway.
ignores: [
Expand Down
10 changes: 6 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
"zod": "4.6.5"
},
"devDependencies": {
"@arethetypeswrong/cli": "0.18.5",
"@commitlint/cli": "^21.2.3",
"@commitlint/config-conventional": "^21.2.3",
"@commitlint/types": "^21.2.3",
Expand Down Expand Up @@ -59,6 +60,7 @@
"knip": "^6.38.0",
"lint-staged": "^17.6.0",
"prettier": "^3.9.9",
"publint": "0.3.24",
"semantic-release": "^25.0.9",
"semver": "7.8.5",
"tsx": "4.23.15",
Expand Down Expand Up @@ -112,7 +114,7 @@
},
"repository": {
"type": "git",
"url": "https://github.com/ExaDev/markmv.git"
"url": "git+https://github.com/ExaDev/markmv.git"
},
"scripts": {
"_build": "tsc -p tsconfig.build.json",
Expand All @@ -136,18 +138,18 @@
"lint:fix": "eslint . --fix",
"mcp-server": "node dist/cli.js mcp",
"prepare": "husky",
"prepublishOnly": "pnpm run build && pnpm run test:run",
"prepublishOnly": "pnpm run build && pnpm run test && publint && attw --pack --profile esm-only",
"publish:dry": "npm pack --dry-run",
"publish:npm": "npm publish --access public",
"release": "semantic-release",
"release:dry": "semantic-release --dry-run",
"start": "node dist/cli.js",
"test": "vitest",
"test": "turbo run _test",
"test:coverage": "vitest run --coverage",
"test:cross-platform": "node scripts/test-cross-platform.js",
"test:cross-platform:cli": "node scripts/test-cross-platform.js --cli-only",
"test:cross-platform:data": "node scripts/test-cross-platform.js --test-data-only",
"test:run": "turbo run _test",
"test:watch": "vitest",
"typecheck": "turbo run _typecheck"
},
"type": "module",
Expand Down
Loading
Loading