Skip to content

Add quick test runner - #9743

Merged
Jermolene merged 4 commits into
TiddlyWiki:masterfrom
pmario:quicktest-for-windows
Jul 8, 2026
Merged

Add quick test runner#9743
Jermolene merged 4 commits into
TiddlyWiki:masterfrom
pmario:quicktest-for-windows

Conversation

@pmario

@pmario pmario commented Mar 16, 2026

Copy link
Copy Markdown
Member

Add quick-test.js for fast selective testing on Windows

  • Add editions/test/quick-test.js — a fast test runner that boots the test edition directly and runs selected test specs, skipping the expensive --rendertiddler step from --build index
  • Move run-wiki-based-tests.js into the test edition at editions/test/tiddlers/tests/

Usage

Run from the repository root:

# Run ALL test specs
node editions/test/quick-test.js

# Run a single test file (substring match, case-insensitive)
node editions/test/quick-test.js test-wikitext-parser

# Run multiple test files
node editions/test/quick-test.js test-wikitext-parser test-filters

@netlify

netlify Bot commented Mar 16, 2026

Copy link
Copy Markdown

Deploy Preview for tiddlywiki-previews ready!

Name Link
🔨 Latest commit 249d993
🔍 Latest deploy log https://app.netlify.com/projects/tiddlywiki-previews/deploys/6a494a82e3862700083c6e3b
😎 Deploy Preview https://deploy-preview-9743--tiddlywiki-previews.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

Copy link
Copy Markdown

Confirmed: pmario has already signed the Contributor License Agreement (see contributing.md)

@github-actions

github-actions Bot commented Mar 16, 2026

Copy link
Copy Markdown

⚠️ Warning: This PR only modifies documentation (within /editions or /community/people). If the changes do not relate to the prerelease, please consider targeting the tiddlywiki-com branch instead.


⚠️ Change Note Status

This PR appears to contain code changes but doesn't include a change note.

Please add a change note by creating a .tid file in editions/tw5.com/tiddlers/releasenotes/<version>/

📚 Documentation: Release Notes and Changes

💡 Note: If this is a documentation-only change, you can ignore this message.

@pmario

pmario commented Jun 2, 2026

Copy link
Copy Markdown
Member Author

@Jermolene ... Can you please merge this one. I need it to start quick tests on Windows. Running Jasmine tests even if only 1 test file is selected needs about 80 seconds for me.

@Jermolene

Copy link
Copy Markdown
Member

Thanks @pmario

  • Move run-wiki-based-tests.js into the test edition at editions/test/tiddlers/tests/

What is the motivation for this change?

@pmario

pmario commented Jun 4, 2026

Copy link
Copy Markdown
Member Author

@Jermolene ... On Windows the Node.js startup is slow. So a full test on my PC needs about 75 seconds. If I do create new tests it's needed to test several times. So running the full test suite again and again is a huge time sink.

The quick-test.js allows us to run selected tests, which is faster.


See the output of a full Jasmine test-run below:

PS E:\git\tiddly\tiddlywiki\TiddlyWiki5> node .\tiddlywiki.js .\editions/test --build index
Randomized with seed 69179
Started
...... ------- shortened here ----------

1527 specs, 0 failures, 5 pending specs
Finished in 74.657 seconds
Randomized with seed 69179 (jasmine --random=true --seed=69179)

I know it's possible to select single tests with Jasmine. But it still touches every test, which needs the same time.

@Jermolene

Copy link
Copy Markdown
Member

Thanks @pmario. I understand the motivation for the PR, my question was more specific: why is run-wiki-based-tests.js moved into the test edition at editions/test/tiddlers/tests/?

@pmario

pmario commented Jun 4, 2026

Copy link
Copy Markdown
Member Author

Ahhh, There must have been a reason, but I can not remember it anymore. I think it is, because it is a /test-spec which imo should be part of the edition instead of the plugin.

I can move it back, if you want.

@pmario

pmario commented Jul 4, 2026

Copy link
Copy Markdown
Member Author

@Jermolene ... I did move run-wiki-based-tests.js back to its original path

@pmario pmario changed the title Move test script and add quick test runner Add quick test runner Jul 8, 2026
@pmario

pmario commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

@Jermolene .. To make it easier for me to review the existing wikitext-serializer plugin test, it would be nice if this PR would be merged. It's dev tooling. So it does not cause any harm for users.

See: Fix serializing inline code containing backticks #9899

@Jermolene
Jermolene merged commit ca063cb into TiddlyWiki:master Jul 8, 2026
9 checks passed
@Jermolene

Copy link
Copy Markdown
Member

Thanks @pmario

mibmal added a commit to mibmal/TiddlyWiki5 that referenced this pull request Jul 10, 2026
* Update license date

* Try increasing Firefox timeout because of build errors

* Add/update translations to Polish language: (TiddlyWiki#9829)

- 0e765bd
- 9c09841
- 33b2f51
- cd8b1fa
- 0177f09
- b673651
- 9afe522

* [ja_JP] Update of Japanese translations (TiddlyWiki#9853)

* [ja_JP] Japanese translation update from commit: 3ed481b

* [ja_JP] Japanese translation update from commit: ad3587b

* [ja_JP] Japanese translation update from commit: 6bc77cf

* [ja_JP] Japanese translation update from commit: 5d1c1ea, c4991a5

* [ja_JP] Japanese translation update from commit: 37a4613

* [ja_JP] Japanese translation update from commit: 748ef8a

* [ja_JP] Japanese translation update from commit: 92caa73

* [ja_JP] Japanese translation update from commit: 87ba87b

* [ja_JP] Japanese translation update from commit: 15ba415

* [ja_JP] Japanese translation update from commit: 64ee20e

* [ja_JP] Japanese translation update from commit: 5d1c1ea,add3d42

* [ja_JP] Japanese translation update from commit: 64ee20e

* [ja_JP] Japanese translation update from commit: b001333

* [ja_JP] Japanese translation update from commit: b434b9d

* [ja_JP] Japanese translation update from commit: 3983086

* Update playwright.config.js to address build failures

* Revert "[ja_JP] Update of Japanese translations (TiddlyWiki#9853)"

Reverting as was inadvertently merged to tiddlywiki-com

This reverts commit 14b1157.

* playwright: increase timeout to 60s

* playwright: change timeout to 45s

* playwright: revert timeout to 60s

* [ja_JP] Update of Japanese translations (TiddlyWiki#9870)

* [ja_JP] Japanese translation update from commit: 3ed481b

* [ja_JP] Japanese translation update from commit: ad3587b

* [ja_JP] Japanese translation update from commit: 6bc77cf

* [ja_JP] Japanese translation update from commit: 5d1c1ea, c4991a5

* [ja_JP] Japanese translation update from commit: 37a4613

* [ja_JP] Japanese translation update from commit: 748ef8a

* [ja_JP] Japanese translation update from commit: 92caa73

* [ja_JP] Japanese translation update from commit: 87ba87b

* [ja_JP] Japanese translation update from commit: 15ba415

* [ja_JP] Japanese translation update from commit: 64ee20e

* [ja_JP] Japanese translation update from commit: 5d1c1ea,add3d42

* [ja_JP] Japanese translation update from commit: 64ee20e

* [ja_JP] Japanese translation update from commit: b001333

* [ja_JP] Japanese translation update from commit: b434b9d

* [ja_JP] Japanese translation update from commit: 3983086

* Fix KaTeX missing font (TiddlyWiki#9873)

* Freelinks Plugin: Add configurable MaxLinks cap and remove search truncation (TiddlyWiki#9836)

* Update aho-corasick.js

Optimized Aho-Corasick string matching algorithm implementation with enhanced
performance and error handling for TiddlyWiki freelinking functionality.
 
- Uses WeakMap for failure links. WeakMap keys are compared by object identity
  (reference equality), which is required here because trie nodes are plain
  objects — a regular {} map would not work because JavaScript only supports
  string and Symbol keys, forcing object keys to be coerced to strings.
- Outputs are merged at build time (classic AC optimization), eliminating the
  need to walk the failure chain during search.
- search() converts case per character to avoid Unicode index desync (e.g.
  Turkish İ expands under toLowerCase(), shifting subsequent indices).
- No match count cap in search(); truncation is handled at the render stage
  by processTextWithMatches() to avoid silently dropping matches mid-text.
- Optional word boundary filtering: CJK always allowed; Latin requires
  non-word characters on both sides.

* Update text.js

- Render output capped by $:/config/Freelinks/MaxLinks (default 500).
  The cap applies to the final set of non-overlapping rendered links, not to
  the raw search results: search always runs to completion so that the
  longest-match selection has full information. Text beyond the cap remains
  as plain text rather than being silently omitted.

* Create config-Freelinks-MAX_LINKS_TIDDLER.tid

setting for MAX_LINKS_TIDDLER

* Update and rename config-Freelinks-MAX_LINKS_TIDDLER.tid to config-Freelinks-MaxLinks.tid

fix typo

* Update settings.tid

add MaxLinks setting

* Update readme.tid

add MaxLinks setting text

* Create TiddlyWiki#9836.tid

release note

* Update tiddlywiki.info

add freelinks for test build

* Update macros-view.tid

fix structure problem

* Update text.js

add IGNORE_CASE_TIDDLER  to whitelist

* Rename TiddlyWiki#9836.tid to TiddlyWiki#9836.tid

move to 5.4.1

* Update text.js

I deleted the wrong line last time, so I'm putting it back.

* Update text.js

eslint fix

* Update text.js

refactor: inline plain-text via dynamic core reference

* Delete plugins/tiddlywiki/freelinks/plain-text.js

remove plain-text.js: now inlined via dynamic core reference

* Update text.js

restore plain-text.js, remove new Function extraction

* Add files via upload

restore plain-text.js, remove new Function extraction

* Update TiddlyWiki#9836.tid

update new bug

* Update TiddlyWiki#9836.tid

tw version fix

* Update tiddlywiki.info

reverse to original

* Bump flatted from 3.3.3 to 3.4.2 (TiddlyWiki#9774)

Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2.
- [Commits](WebReflection/flatted@v3.3.3...v3.4.2)

---
updated-dependencies:
- dependency-name: flatted
  dependency-version: 3.4.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump minimatch from 3.1.2 to 3.1.5 (TiddlyWiki#9775)

Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 3.1.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](isaacs/minimatch@v3.1.2...v3.1.5)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump picomatch from 4.0.3 to 4.0.4 (TiddlyWiki#9776)

Bumps [picomatch](https://github.com/micromatch/picomatch) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](micromatch/picomatch@4.0.3...4.0.4)

---
updated-dependencies:
- dependency-name: picomatch
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump js-yaml from 4.1.0 to 4.1.1 (TiddlyWiki#9777)

Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](nodeca/js-yaml@4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [DOCS] Fix survey image link (TiddlyWiki#9897)

* Correct v5.4.1 banner

* BurningTreeC is leader of the TiddlyDesktop team

@BurningTreeC please check the details of your card,

* Fix invalid source positions in parse tree nodes (TiddlyWiki#9882)

* Fix invalid source positions in parse tree nodes

Several wikitext rules recorded start and end offsets that did not match
the source they represent. The offsets are only used for source position
mapping, not rendering or serialization, so output is unchanged and
source.slice(start, end) now equals the node text.

* import: the filter attribute start was set to the whole source string
  instead of the numeric offset. It used this.parser.source where it
  meant this.parser.pos, so every \import node carried a copy of the
  entire source as its start.

* codeinline: the text node end pointed past the closing backtick, so the
  span included the closing delimiter and could read one or two characters
  too far. It now ends where the content ends.

* wikilinkprefix and extlink: a suppressed link such as ~SomeLink or
  ~http://example.com produced a text node whose span included the
  leading ~ while its text did not. The span now starts after the ~.

* Add 5.4.1 change note for TiddlyWiki#9882

Document the parse tree source position fixes: inline code, suppressed
external links, suppressed wikilinks, and the import filter rule.

* Add tests for parse tree source positions

Cover the four wikitext parser rules whose `start` and `end` offsets are
corrected in this PR: codeinline, extlink, wikilinkprefix, and import.

* Add quick test runner (TiddlyWiki#9743)

* Fixes issue with copying cross window event properties (TiddlyWiki#9905)

* fix: issue with copying cross window event properties

* docs: added changenote

* Fix CI issues

1. Remove references to obsolete plugins
2. Fix duplicate language string entry

* Fix incorrect reference to BurningTreeC's website

* Fix CI errors

* chore: preparing for v5.4.1 release

* chore: update license and readme

* Missing v5.4.1 release notes

* chore: added missing changenotes

* Version number update for 5.4.1

* Update TiddlyWiki release checklist

* chore: preparing for v5.5.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
Co-authored-by: Maurycy Zarzycki <maurycy@evidentlycube.com>
Co-authored-by: IchijikuIchigo <amaou.toyomitsuhime@gmail.com>
Co-authored-by: Saq Imtiaz <saq.imtiaz@gmail.com>
Co-authored-by: XLBilly <LeiYiXia29@outlook.com>
Co-authored-by: s793016 <s793016+git@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: superuser-does <32982579+superuser-does@users.noreply.github.com>
Co-authored-by: Mario Pietsch <pmariojo@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants