Skip to content

Conversation

@ermshiperete
Copy link
Contributor

@ermshiperete ermshiperete commented Dec 11, 2025

This change adds baseline tests for .js keyboards. Several of those tests fail and so are skipped for now (#15342).

This test also includes the .js files of the baseline keyboards because they can't easily be generated on non-Windows platforms. This is similar to the .kmx files that are also included in the repo for the same reason.

Test-bot: skip

@github-project-automation github-project-automation bot moved this to Todo in Keyman Dec 11, 2025
@github-actions github-actions bot added web/ common/ test Any acceptance test issue labels Dec 11, 2025
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Dec 11, 2025

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

  • Android
    • Keyman for Android apk - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Android apk - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Android apk (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • KeyboardHarness apk - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for Android apk (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • KMSample1 apk - build : all tests passed (no artifacts on BuildLevel "build")
    • KMSample2 apk - build : all tests passed (no artifacts on BuildLevel "build")
  • Developer
    • Keyman Developer - build : all tests passed (no artifacts on BuildLevel "build")
    • Compiler Regression Tests - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman Developer (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • kmcomp.zip - build : all tests passed (no artifacts on BuildLevel "build")
    • kmcomp.zip (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • iOS
    • Keyman for iOS (simulator image) - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for iOS (simulator image) - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for iOS (simulator image) (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for iOS (simulator image) (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
  • Keyboards
    • Test Keyboards - build : all tests passed (no artifacts on BuildLevel "build")
  • Web
    • KeymanWeb Test Home - build : all tests passed (no artifacts on BuildLevel "build")
  • Windows
    • Keyman for Windows - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Windows - build : all tests passed (no artifacts on BuildLevel "build")
    • FirstVoices Keyboards for Windows (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Keyman for Windows (old PRs) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (32 bit) - build : all tests passed (no artifacts on BuildLevel "build")
    • Text Editor (64 bit) - build : all tests passed (no artifacts on BuildLevel "build")

@keymanapp-test-bot keymanapp-test-bot bot changed the title test(web): add baseline tests for .js keyboards test(web): add baseline tests for .js keyboards 🎼 Dec 11, 2025
@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S18 milestone Dec 11, 2025
@ermshiperete ermshiperete marked this pull request as ready for review December 11, 2025 16:08
ermshiperete added a commit that referenced this pull request Dec 12, 2025
This change groups similar tests together. Also update `build.sh` to
compile .js files.

Follow-up-of: #15341
Test-bot: skip
ermshiperete added a commit that referenced this pull request Dec 12, 2025
This change groups similar tests together. Also update `build.sh` to
compile .js files.

Follow-up-of: #15341
Test-bot: skip
ermshiperete added a commit that referenced this pull request Dec 12, 2025
This change groups similar tests together. Also update `build.sh` to
compile .js files.

Follow-up-of: #15341
Test-bot: skip
ermshiperete added a commit that referenced this pull request Dec 12, 2025
This change groups similar tests together. Also update `build.sh` to
compile .js files.

Follow-up-of: #15341
Test-bot: skip
@ermshiperete ermshiperete changed the title test(web): add baseline tests for .js keyboards 🎼 test(web): add baseline tests for .js keyboards 🧪 🎼 Dec 15, 2025
ermshiperete added a commit that referenced this pull request Dec 15, 2025
This change groups similar tests together. Also update `build.sh` to
compile .js files.

Follow-up-of: #15341
Test-bot: skip
Copy link
Contributor

@jahorton jahorton left a comment

Choose a reason for hiding this comment

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

I'm curious how some of the "failing" tests are failing here. Some of those listed had other unit tests built to target the same functionality - I specifically recall k_025 being one of them.

There's a strong chance that this linked test (and some following it!) are designed to test the same thing as the fixture mentioned above:

it('Backing up and restoring (loadStore/saveStore)', function() {

Refer to #2884. It does appear that one directly used k_023's keyboard (see header of web/unit_tests/resources/keyboards/options_with_save.js), though I believe the linked test above aimed to cover k_025's focus.

'k_037___options___double_reset.kmn',
'k_039___generic_ctrlalt.kmn',
'k_049___enter_invalidates_context.kmn',
'k_055___deadkey_cancelled_by_arrow.kmn',
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
'k_055___deadkey_cancelled_by_arrow.kmn',
'k_055___deadkey_cancelled_by_arrow.kmn', // Keyman Engine for Web does not interpret arrow keys

Copy link
Member

Choose a reason for hiding this comment

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

Deadkeys should be cancelled by caret movement. So we need to fix this at some point.

'k_049___enter_invalidates_context.kmn',
'k_050___nul_and_context.kmn', // js only
'k_052___nul_and_index.kmn', // js only
'k_055___deadkey_cancelled_by_arrow.kmn',
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
'k_055___deadkey_cancelled_by_arrow.kmn',
'k_055___deadkey_cancelled_by_arrow.kmn', // Keyman Engine for Web does not interpret arrow keys

Copy link
Member

@mcdurdin mcdurdin left a comment

Choose a reason for hiding this comment

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

If we could rebuild those .js fixtures with debug, then this looks like a good step forward

Copy link
Member

Choose a reason for hiding this comment

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

I think it would be good for the fixtures to be generated with debug so we get source line numbers and readable code.

@keyman-server keyman-server modified the milestones: A19S18, A19S19 Dec 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

5 participants