build: test/build in CI (#49)

This commit is contained in:
Samuel Attard 2025-07-06 21:01:37 -07:00 • committed by GitHub
commit 85de8638db
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 46 additions and 10 deletions

41
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,41 @@
name: Test
on:
pull_request:
branches:
- main
push:
branches:
- main
permissions:
contents: read
jobs:
test:
name: Test
strategy:
matrix:
node-version:
- 20.19.x
- 22.17.x
os:
- macos-latest
- ubuntu-latest
- windows-latest
runs-on: "${{ matrix.os }}"
steps:
- run: git config --global core.autocrlf input
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: "${{ matrix.node-version }}"
cache: "yarn"
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Build
run: yarn build
- name: Test
run: yarn lint && yarn test

View file

@ -5,6 +5,6 @@
},
"eslint.validate": ["typescript"],
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
}
}

View file

@ -37,7 +37,7 @@
"scripts": {
"build": "yarn run build:code && yarn run build:schema",
"build:code": "tsc",
"build:schema": "node --experimental-strip-types ./scripts/build-dxt-schema.js",
"build:schema": "node ./scripts/build-dxt-schema.js",
"dev": "tsc --watch",
"test": "jest",
"test:watch": "jest --watch",

View file

@ -1,4 +1,4 @@
import { DxtManifestSchema, DxtSignatureInfoSchema } from "../src/schemas.ts";
import { DxtManifestSchema, DxtSignatureInfoSchema } from "../dist/schemas.js";
import * as z from "zod/v4";
import fs from "node:fs/promises";
import path from "node:path";

View file

@ -73,15 +73,10 @@ temp/`;
});
it("should return empty array if file cannot be read", () => {
const content = "*.log";
fs.writeFileSync(dxtIgnorePath, content);
fs.chmodSync(dxtIgnorePath, 0); // Make file unreadable
fs.mkdirSync(dxtIgnorePath); // Make a dir so readFile fails
const patterns = readDxtIgnorePatterns(tempDir);
expect(patterns).toEqual([]);
// Restore permissions for cleanup
fs.chmodSync(dxtIgnorePath, 0o644);
});
});

View file

@ -2359,7 +2359,7 @@ ignore@^5.2.0:
ignore@^7.0.5:
version "7.0.5"
resolved "https://artifactory.infra.ant.dev:443/artifactory/api/npm/npm-all/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9"
integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==
import-fresh@^3.2.1: