emulate-key-in-browser
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0-rc.1 • Public • Published

    npm (tag) Travis (.org)

    emulate key in browser

    Tries to emulate browser reaction for special keys like tab, arrows or backspace.

    This helps testing behavior of components in unit tests (e.g. with jasmine or jest) without the need to launch a test enviroment and real browser (e.g. webdriver). Be aware that this sould not replace your real browser tests, but it will simplify early behavior tests.

    Interactive demo: https://emulate-key-in-browser.net-root.de

    Installation

    npm i emulate-key-in-browser
    or download unpackaged javascript files from our releases

    Usage

    typescript

    import { emulateKey } from 'emulate-key-in-browser';
     
    emulateKey.tab();
    emulateKey.shiftTab();
    emulateKey.backspace();
    emaulteKey.delete();
    emulateKey.arrow.up();
    emulateKey.arrow.right();
    emulateKey.arrow.down();
    emulateKey.arrow.left();
    emulateKey.shiftArrow.up();
    emulateKey.shiftArrow.right();
    emulateKey.shiftArrow.down();
    emulateKey.shiftArrow.left();
    emulateKey.writeText('content');

    -> complete angular material example project

    javascript

    <script src="emulate-key-in-browser.min.js">
    <script>
      emulateKey.tab();
      emulateKey.arrow.up();
      emulateKey.shiftArrow.up();
      emulateKey.backspace();
      ...
    </script> 

    -> complete plain html example project

    Limitations

    • selection in multiline inputs
      • line navigation will use character count, not character offset width and position like browsers
      • there are environmen specific behaviors when hitting the cursor with arrow down or up key. (see emulate-shift-arrows-spec for details)
    • tab to elements with scrollbars
      Firefox selects elements that are not selectable as soon as they get scrollbars (overflow: auto) - not decided yet how to handle that. Current behavior is to ignore them.

    Dependencies

    emulate-tab

    Browser compatibility:

    There are automated tests for emulating keys in Chrome and Firefox. There are also automated tests that check the behavior of Chrome is equal (except multi line arrow key selection) to the emulated behavior. There's more information in our TESTING_CONCEPT.md.

    Automated tests for the latestest emulate-key-in-browser version are currently: Travis (.org)

    License:

    MIT License

    Install

    npm i emulate-key-in-browser

    DownloadsWeekly Downloads

    1

    Version

    1.0.0-rc.1

    License

    MIT

    Unpacked Size

    105 kB

    Total Files

    26

    Last publish

    Collaborators

    • em.hein