Mailspring/internal_packages
Evan Morikawa 73e7c1c52e feat(tests): add integration tests
comment

Adding test harness

Using key strokes in main window test

Tests work now

Clean up argument variables

Rename list manager and get rid of old spec-helper methods

Extract out time overrides from spec-helper

Spectron test for contenteditable

fix spec exit codes and boot mode

fix(spec): cleanup N1.sh and make specs fail with exit code 1

Revert tests and get it working in window

Move to spec_integration and add window load tester

Specs pass. Console logs still in

Remove console logs

Extract N1 Launcher ready method

Make integrated unit test runner

feat(tests): adding integration tests

Summary:
The /spectron folder got moved to /spec_integration

There are now unit tests (the old ones) run via the renamed
`script/grunt run-unit-tests`

There are now integration tests run via the command `script/grunt
run-integration-tests`.

There are two types of integration tests:
1. Tests that operate on the whole app via Selenium/Chromedriver. These
tests have access to Spectron APIs but do NOT have access to any JS object
running inside the application. See the `app-boot-spec.es6` for an example
of these tests. This is tricky because we want to test the Main window,
but Spectron may latch onto any other of our loading windows. Code in
`integration-helper` give us an API that finds and loads the main window
so we can test it

2. Tests that run in the unit test suite that need Spectron to perform
integration-like behavior. These are the contentedtiable specs. The
Spectron server is accessed from the app and can be used to trigger
actions on the running app, from the app. These tests use the
windowed-test runner so Spectron can identify whether the tests have
completed, passed, or failed. Unfortunately Spectron can't access the logs
, nor the exit code of the test script thereby forcing us to parse the
HTML DOM. (Note this is still a WIP)

I also revamped the `N1.sh` file when getting the launch arguments to work
properly. It's much cleaner. We didn't need most of the data.

Test Plan: new tests

Reviewers: juan, bengotow

Differential Revision: https://phab.nylas.com/D2289

Fix composer specs

Tests can properly detect when Spectron is in the environment

Report plain text output in specs

fixing contenteditable specs

Testing slow keymaps on contenteditable specs

Move to DOm mutation

Spell as `subtree` not `subTree`
2015-12-02 13:41:14 -08:00
..
account-sidebar feat(prefs): Allow tabs with an accounts submenu 2015-11-30 11:43:49 -08:00
attachments Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
category-picker fix(labels): Allow user to label as spam or trash from the dropdown 2015-12-02 11:43:37 -08:00
composer feat(tests): add integration tests 2015-12-02 13:41:14 -08:00
composer-signature feat(rsvp): "Quick RSVP" to events recongized by the API 2015-11-30 17:12:45 -08:00
composer-spellcheck refactor(contenteditable): use DOM mutation observers 2015-12-01 15:31:03 -08:00
events feat(rsvp): "Quick RSVP" to events recongized by the API 2015-11-30 17:12:45 -08:00
feedback bump(electron): 0.34.3 => 0.35.1 2015-11-23 22:09:17 -08:00
inbox-contact-elements Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
message-autoload-images feat(rsvp): "Quick RSVP" to events recongized by the API 2015-11-30 17:12:45 -08:00
message-list feat(shortcuts): Add listeners for unread/important keyboard shortcuts 2015-11-30 18:29:45 -08:00
mode-switch Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
notification-mailto Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
notification-update-available Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
notifications Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
onboarding Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
plugins Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
preferences feat(keybindings): Show all keybindings in prefs 2015-12-01 18:31:19 -08:00
search-bar Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
sidebar-fullcontact Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
system-tray fix(tray): On Win32 / Linux click should open main window if closed 2015-12-01 14:46:08 -08:00
thread-list Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
tooltip Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
ui-dark Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
ui-light Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
undo-redo Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
unread-notifications Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
worker-sync Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00
worker-ui Internal package.json license: GPLv3 2015-11-24 09:09:33 -08:00