Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
33cd1e8
Extend CI For private tests
qunabu Feb 17, 2026
3f6c49b
Extend CI For private tests
qunabu Feb 17, 2026
e76fbdf
Extend CI For private tests
qunabu Feb 17, 2026
f3afc73
Extend CI For private tests
qunabu Feb 17, 2026
58125f8
Extend CI For private tests
qunabu Feb 17, 2026
f4abb97
Extend CI For private tests
qunabu Feb 17, 2026
db5fd73
Extend CI For private tests
qunabu Feb 17, 2026
844b2f6
Extend CI For private tests
qunabu Feb 17, 2026
d4e3859
Extend CI For private tests
qunabu Feb 17, 2026
040fe72
Extend CI For private tests
qunabu Feb 17, 2026
d9668f5
Extend CI For private tests
qunabu Feb 17, 2026
c35c61c
Extend CI For private tests
qunabu Feb 17, 2026
d346873
Extend CI For private tests
qunabu Feb 17, 2026
cf6ab6f
Extend CI For private tests
qunabu Feb 17, 2026
bab0951
Extend CI For private tests
qunabu Feb 17, 2026
0f04a10
Add npm script test:fetch-private
sequba Mar 4, 2026
370e3e5
Merge branch 'develop' of github.com:handsontable/hyperformula into f…
sequba Mar 4, 2026
198eee5
Adjust eslintingore
sequba Mar 4, 2026
91501ca
Adjust test.yml GH workflow
sequba Mar 4, 2026
c5d69d8
Add performance.yml GH workflow
sequba Mar 4, 2026
afc9169
Setup codecov.yml
sequba Mar 4, 2026
5a6fe42
Remove Makefile
sequba Mar 4, 2026
70f2888
Bring back removed npm scripts
sequba Mar 4, 2026
74de850
Update test/README.md
sequba Mar 4, 2026
4529b54
Add setup files for jest and karma
sequba Mar 4, 2026
74d2705
Move codecov.yml to the repository root
sequba Mar 4, 2026
1f45bc4
Fix typo in eslintignore file
sequba Mar 4, 2026
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
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ test/_setupFiles/*.js

# Auto-generated directories
commonjs
coverage
dist
doc
es
Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,12 @@ jobs:
name: audit
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d # https://github.com/actions/setup-node/releases/tag/v1.4.4
with:
node-version: ${{ matrix.node-version }}

- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Run audit
run: |
npm run audit
run: npm run audit
10 changes: 4 additions & 6 deletions .github/workflows/build-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,15 @@ jobs:
name: build-docs
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d # https://github.com/actions/setup-node/releases/tag/v1.4.4
with:
node-version: ${{ matrix.node-version }}

- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Install dependencies
run: |
npm ci
run: npm ci

- name: Build docs
run: |
npm run docs:build
run: npm run docs:build
10 changes: 4 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,15 @@ jobs:
install-command: [ i, ci ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d # https://github.com/actions/setup-node/releases/tag/v1.4.4
with:
node-version: ${{ matrix.node-version }}

- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Install dependencies
run: |
npm ${{ matrix.install-command }}
run: npm ${{ matrix.install-command }}

- name: Build
run: |
npm run bundle-all
run: npm run bundle-all
10 changes: 4 additions & 6 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,15 @@ jobs:
name: lint
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d # https://github.com/actions/setup-node/releases/tag/v1.4.4
with:
node-version: ${{ matrix.node-version }}

- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Install dependencies
run: |
npm ci
run: npm ci

- name: Run linter
run: |
npm run lint
run: npm run lint
76 changes: 76 additions & 0 deletions .github/workflows/performance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Performance
permissions:
contents: read
pull-requests: write

on:
pull_request:
types:
- opened
- reopened
- synchronize # the head branch is updated from the base branch, new commits are pushed to the head branch, or the base branch is changed

jobs:
performance-test:
strategy:
matrix:
node-version: [ '22' ]
os: [ 'ubuntu-latest' ]
name: Test performance
runs-on: ${{ matrix.os }}
steps:
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d # https://github.com/actions/setup-node/releases/tag/v1.4.4
with:
node-version: ${{ matrix.node-version }}

- name: (base) Checkout main repository
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # https://github.com/actions/checkout/releases/tag/v2.3.4
with:
ref: ${{ github.event.pull_request.base.sha }}

- name: Checkout hyperformula-tests repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
ssh-key: ${{ secrets.DEPLOY_TOKEN }}
repository: handsontable/hyperformula-tests
path: test/hyperformula-tests

- name: Fetch hyperformula-tests and sync branches
run: cd test && ./fetch-tests.sh

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performance workflow runs missing script from base checkout

High Severity

The "Fetch hyperformula-tests and sync branches" step runs ./fetch-tests.sh against the base branch checkout (line 30 uses ref: ${{ github.event.pull_request.base.sha }}). Since test/fetch-tests.sh is a new file introduced in this PR, it won't exist in any base branch that predates this merge, causing the step to fail with "No such file or directory". The test.yml workflow avoids this because its checkout uses the default ref (the PR's own code).

Additional Locations (1)

Fix in Cursor Fix in Web


- name: (base) Install dependencies
run: npm ci

- name: (base) Run performance tests
run: npm run benchmark:write-to-file base.json
Comment thread
cursor[bot] marked this conversation as resolved.

- name: (head) Checkout main repository
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # https://github.com/actions/checkout/releases/tag/v2.3.4
with:
clean: false

- name: (head) Install dependencies
run: npm ci

- name: (head) Run performance tests
run: |
npm run benchmark:write-to-file head.json

- name: Compare the results
run: |
npm run benchmark:compare-benchmarks base.json head.json performance-report.md

- name: Publish a comment - header
uses: marocchino/sticky-pull-request-comment@6804b5ad49d19c10c9ae7cf5057352f7ff333f31 # https://github.com/marocchino/sticky-pull-request-comment/tree/v1.6.0
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
message: |
## Performance comparison of head (${{ github.event.pull_request.head.sha }}) vs base (${{ github.event.pull_request.base.sha }})

- name: Publish a comment - performance comparison report
uses: marocchino/sticky-pull-request-comment@6804b5ad49d19c10c9ae7cf5057352f7ff333f31 # https://github.com/marocchino/sticky-pull-request-comment/tree/v1.6.0
with:
append: true
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
path: performance-report.md
10 changes: 4 additions & 6 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,18 @@ jobs:
name: publish-docs
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d # https://github.com/actions/setup-node/releases/tag/v1.4.4
with:
node-version: ${{ matrix.node-version }}

- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Install dependencies
run: |
npm ci
run: npm ci

- name: Build docs
run: |
npm run docs:build
run: npm run docs:build

- name: Deploy to GH pages
uses: peaceiris/actions-gh-pages@ba0b7df03e25ff29c924be8149041119e9421ea6 # https://github.com/peaceiris/actions-gh-pages/releases/tag/v3.5.6
Expand Down
48 changes: 36 additions & 12 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,35 @@ jobs:
name: unit-tests
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d # https://github.com/actions/setup-node/releases/tag/v1.4.4
with:
node-version: ${{ matrix.node-version }}

- name: Checkout main repository
uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Checkout hyperformula-tests repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
ssh-key: ${{ secrets.DEPLOY_TOKEN }}
repository: handsontable/hyperformula-tests
path: test/hyperformula-tests

- name: Fetch hyperformula-tests and sync branches
run: cd test && ./fetch-tests.sh

- name: Install dependencies
run: |
npm ci
run: npm ci

- name: Run tests
run: |
npm run test:ci
run: npm run test:ci -- --coverage


- name: Upload coverage to Codecov
uses: codecov/codecov-action@6004246f47ab62d32be025ce173b241cd84ac58e # https://github.com/codecov/codecov-action/releases/tag/v1.0.13
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

browser-tests:
strategy:
Expand All @@ -46,17 +61,26 @@ jobs:
name: browser-tests
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@56899e050abffc08c2b3b61f3ec6a79a9dc3223d # https://github.com/actions/setup-node/releases/tag/v1.4.4
with:
node-version: ${{ matrix.node-version }}

- name: Checkout main repository
uses: actions/checkout@722adc63f1aa60a57ec37892e133b1d319cae598 # https://github.com/actions/checkout/releases/tag/v2.0.0

- name: Checkout hyperformula-tests repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
with:
ssh-key: ${{ secrets.DEPLOY_TOKEN }}
repository: handsontable/hyperformula-tests
path: test/hyperformula-tests

- name: Fetch hyperformula-tests and sync branches
run: cd test && ./fetch-tests.sh

- name: Install dependencies
run: |
npm ci
run: npm ci

- name: Run tests
run: |
npm run test:browser
run: npm run test:browser
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
.idea/
.vscode
/commonjs/
/coverage/
/dist/
/doc/
/docs/api/
Expand All @@ -21,3 +22,5 @@ node_modules/
*.iml
dev*.html
.DS_Store

/test/hyperformula-tests/
63 changes: 0 additions & 63 deletions Makefile

This file was deleted.

14 changes: 14 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
codecov:
require_ci_to_pass: yes

coverage:
range: 95..100
round: down
precision: 2

comment:
layout: "reach, diff, flags, files"
behavior: new
require_changes: false
require_base: yes
require_head: yes
Comment thread
cursor[bot] marked this conversation as resolved.
14 changes: 13 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,26 @@
"verify:publish-package": "npm pack | node script/check-publish-package.js",
"verify:typings": "tsc --noEmit",
"test": "npm-run-all lint test:jest test:browser",
"test:fetch-private": "bash test/fetch-tests.sh",
"test:jest": "cross-env NODE_ICU_DATA=node_modules/full-icu jest",
"test:watch": "npm run test:jest -- --watch",
"test:tdd": "npm run test:jest -- --watch function-value",
"test:coverage": "npm run test:jest -- --coverage",
"test:logMemory": "npm run test:jest -- --runInBand --logHeapUsage",
"test:performance": "npm run benchmark:basic && npm run benchmark:cruds",
"test:compatibility": "bash test/compatibility/test-compatibility.sh",
"test:ci": "cross-env NODE_ICU_DATA=node_modules/full-icu node --expose-gc ./node_modules/jest/bin/jest --forceExit",
"test:browser": "cross-env-shell BABEL_ENV=dist env-cmd -f ht.config.js karma start",
"test:browser.debug": "cross-env-shell BABEL_ENV=dist NODE_ENV=debug env-cmd -f ht.config.js karma start",
"typedoc:build-api": "cross-env NODE_OPTIONS=--openssl-legacy-provider typedoc --options .typedoc.md.ts",
"benchmark:basic": "npm run tsnode test/performance/run-basic-benchmark.ts",
"benchmark:cruds": "npm run tsnode test/performance/run-cruds-benchmark.ts",
"benchmark:write-to-file": "npm run tsnode test/performance/write-to-file.ts",
"benchmark:compare-benchmarks": "npm run tsnode test/performance/compare-benchmarks.ts",
"lint": "eslint . --ext .js,.ts",
"lint:fix": "eslint . --ext .js,.ts --fix",
"audit": "npm audit --omit=dev",
"clean": "rimraf commonjs/ dist/ es/ languages/ lib/ typings/ test-jasmine/",
"clean": "rimraf coverage/ commonjs/ dist/ es/ languages/ lib/ typings/ test-jasmine/",
"compile": "tsc",
"check:licenses": "license-checker --production --excludePackages=\"hyperformula@3.1.1\" --onlyAllow=\"MIT; Apache-2.0; BSD-3-Clause; BSD-2-Clause; ISC; BSD; Unlicense\"",
"tsnode": "ts-node --transpile-only -O {\\\"module\\\":\\\"commonjs\\\"}"
Expand Down
Loading
Loading