Commit graph

113 commits

Author SHA1 Message Date
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
Ben Gotow 6150d51eda bump(version): 0.3.26 and updated Changelog 2015-11-30 14:11:31 -08:00
Ben Gotow d7d5ed2832 feat(prefs): Allow tabs with an accounts submenu
Summary:
This diff:
- Improves the styling of the tabs in the preferences sidebar.
- Adds an optional param to section cofnig that puts an "account" submenu beneath the tab item.
- Renames preferences "sections" => "tabs", and renames the PreferencesSectionStore to PreferencesUIStore. I think we should include "UI" in more of our stores, and I think "tabs" is a good idea because it's unambigious—there's no way you could confuse it for a "section" of the NylasEnv.config tree or think it deals with actually saving prefs.

Test Plan: Inspect visually

Reviewers: evan, juan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2296
2015-11-30 11:43:49 -08:00
Ben Gotow 8b4687a272 bump(version): 0.3.25 2015-11-24 17:51:12 -08:00
Ben Gotow 7f5c0a00ae bump(version): 0.3.24 2015-11-23 22:27:05 -08:00
Ben Gotow 528c8850ce bump(electron): 0.34.3 => 0.35.1
Electron 0.35.1 includes the tray fixes we contributed last week but also includes API restructuring and improvements. Most importantly, modules from electron are now imported via `require('electron')`
2015-11-23 22:09:17 -08:00
mbilker dc29b746b2 fix(packages): remove vm-compatibility-layer
vm-compatibility-layer was designed to support obsolete APIs in node
v0.11.x of node v0.10.x. It is only used in the build Gruntfile and
nowhere else in the project.
2015-11-21 00:17:27 -05:00
Ben Gotow f8539aa382 🍒(atom): Pull new, cleaner compile cache + index.js 2015-11-17 19:43:08 -08:00
Evan Morikawa 6b120b7bc3 fix(package): revert to upgraded package.json 2015-11-17 16:25:58 -08:00
Evan Morikawa bab3c18bd4 fix(docs): fix docs so they compile properly. 2015-11-17 15:48:59 -08:00
Ben Gotow 2f2a80b03a bump(️): Electron 0.29.2 > 0.34.3, Sqlite 3.0.11 > 3.1.1 2015-11-17 15:36:32 -08:00
Ben Gotow 58f2836a25 fix(bootstrap): Set apm environment vars to avoid Atom conflicts 2015-11-16 16:42:35 -08:00
Ben Gotow ca3a6e4629 fix(proxyquire): No longer need forked version 2015-11-16 15:43:47 -08:00
Ben Gotow 72c0198e44 fix(proxyquire): Reference http url instead of https 2015-11-16 15:22:27 -08:00
Ben Gotow 5904be4678 cleanup(*): We do not support devDependencies as a concept 2015-11-16 11:46:36 -08:00
Ben Gotow 0380704c41 ASAR v0.8, because apparently 0.5 can skip files 2015-11-16 10:02:31 -08:00
Ben Gotow 2f419d8b18 bump(version): 0.3.23 2015-11-14 13:11:05 -08:00
Ben Gotow d12af16583 fix(deps): Remove nodobjc until we re-enable native notifications 2015-11-07 18:15:40 -08:00
Ben Gotow 6a79bc58dc fix(deps): Go away git-utils, we never used you anyway 2015-11-07 18:05:24 -08:00
Ben Gotow e64e6e526d fix(babel): Roll back to babel@5, see details
- move babelrc to static so that it can be used during the build process and also whenever the app is transpiling things on the fly.
- move babel back to version 5, which is compatible with `apm install`. (babel 6 seems to require the "dedupe" behavior of NPM3)
- update harmony-collections to use an unpublished commit that fixes the "WeakMap is not generic" issue
2015-11-07 14:27:18 -08:00
Ben Gotow 3e5619a980 bump(version): 0.3.22 2015-11-07 12:02:50 -08:00
Juan Tejada 2e3ab31952 Update grunt tasks to lint and transpile es6 code using babel
Summary: - Linter uses predefined rules for ES6 and React from airbnb

Test Plan: - Manuel

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2242
2015-11-06 17:40:42 -08:00
Evan Morikawa d54b1929e9 fix(keymap): use atom-keymap 5.1.11 2015-11-06 15:16:57 -08:00
Evan Morikawa 455b418d6f feat(keymap): add new <KeymapHandlers />
Summary:
Refactor keymaps to wrap components with a <KeymapHandlers /> component.
This more Reactful way of declaring keyback handlers prevents us from
needing to subscribe to `atom.commands`

Test Plan: new tests

Reviewers: bengotow, juan

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2226
2015-11-06 11:47:06 -08:00
Juan Tejada d838610290 feat(system-tray): add system-tray package
Summary:
- Updates support for ES6 code inside packages
- Displays system tray icon with unread count on darwin, or with bubble on other platforms
- Uses canvas api to dynamically generate icon image given unread count:
  - Adds CavasUtils.canvasFromImgAndText to do this
- Adds config option to display system tray icon on darwin

Test Plan: Need to write the tests for this.

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2231
2015-11-06 11:12:38 -08:00
Ben Gotow e85f11cd2c bump(version): 0.3.21 2015-11-02 16:40:25 -08:00
Ben Gotow afe77b27fb feat(notifs): Native notifications for Mac OS X, Win coming
Summary: Replaces `new Notification`-based HTML5 notifications with system native notifications on Mac OS X. This allows us to implement the "Reply" button in the notifications. This will also serve as the hook for native Windows notifications, which are unsupported in Chromium.

Test Plan: Run tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2199
2015-10-29 11:23:51 -07:00
Evan Morikawa 4cb05cb14c fix(analytics): remove analytics 2015-10-28 20:06:01 -04:00
Ben Gotow ec0577ad2b bump(version): 0.3.20 2015-10-27 18:09:49 -07:00
Ben Gotow e858eb6ebd rm(aws-sdk): Ship logs via request, eliminate aws-sdk 2015-10-27 16:35:38 -07:00
Ben Gotow c19e40752a bump(version): 0.3.19 2015-10-23 16:05:48 -07:00
Ben Gotow 299a578549 bump(version): 0.3.18 2015-10-22 14:24:13 -07:00
Evan Morikawa ef8e7aaf51 fix(databse): fix memory leak on DatabaseStore.atomically
Summary:
The Promise chain we were creating was never cleared and created a memory
leak. We instead use a `PromiseQueue` to cleanup finished promises.

Also added several more tests and verified that the memory leak is gone
with the Chrome profiler

Test Plan: new tests

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2184
2015-10-22 14:19:39 -07:00
Ben Gotow 86bae4f239 bump(version): 0.3.17 2015-10-20 15:06:36 -07:00
Ben Gotow 7431f0b434 bump(version): 0.3.16 2015-10-12 14:31:36 -07:00
Ben Gotow 62bd11b6ad revert(electron) 0.30.8 introduced a regression in --webkit-app-region: drag 2015-10-09 16:12:52 -07:00
Ben Gotow ecf120729a fix(specs): sanitize-html update seems to have caused regression 2015-10-09 14:39:53 -07:00
Evan Morikawa 913b00232d Add ChaosMonkey to test misbehaving servers
Summary:
`ChaosMonkey.unleashOnAPI()` will by default cause all API requests to 500

`ChaosMonkey.unleashOnAPI(timeoutMonkey: true)` will cause all API requests
to SOCKETTIMEOUT

`ChaosMonkey.unleashOnAPI(numMonkeys: 10)` will cause the next 10 API
requests to 500

`ChaosMonkey.unleashOnAPI(errorCode: 401, numMonkeys: 10)` will cause the
next 10 API requests to 401.

It must be manually invoked from the console on each window you want the
Monkeys wrecking havok.

It is available on the `window` object as well

This was created to manually test our server failure cases.

Test Plan: manual

Reviewers: drew, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2133
2015-10-09 09:37:56 -07:00
Evan Morikawa bd065b7fb4 Upgrade to Electron 0.30.8. Remove unsused packages. Upgrade deps
- Upgrade node-sqlite3 from patched 3.0.2 to mainline 3.1.0

- Upgrade Electron to 0.30.8: NOTE: This is the latest in the 0.30 line.
  The 0.31+ line did a Chrome upgrade that we want to save for a later
  day. We've had a history of serious instabilities with these upgrades
  and are doing them conservatively

- Upgrade coffee-script from 1.9.0 to 1.10.0

- Package updates in /build folder
2015-10-07 16:52:49 -07:00
Evan Morikawa e9310b80c2 Merge pull request #49 from mbilker/node-v4
Compile on Node 4.x and 0.12
2015-10-07 10:55:51 -07:00
Evan Morikawa af559cb8e0 Merge pull request #16 from sbstnmsch/feature-travis-ci
Add basic travis-ci integration
2015-10-07 10:55:23 -07:00
Ben Gotow ed7af21c1b bump(version): 0.3.15 2015-10-07 10:19:16 -07:00
Matt Bilker f722ffcf43 Change Electron version to 0.30.7 2015-10-06 23:34:02 -04:00
Sebastian Misch 47a9b4d0e2 Add basic travis-ci integration 2015-10-05 23:59:43 +02:00
Ben Gotow 31094fb276 bump(version): 0.3.14 2015-10-05 03:39:29 -07:00
Christine Spang 971620dc71 Update descriptions in package.json 2015-10-04 19:38:14 -07:00
Ben Gotow 00a6dd1594 bump(version): 0.3.13 2015-10-04 00:43:07 -07:00
Ben Gotow 035a664060 bump(version): 0.3.12 2015-10-03 21:16:20 -07:00
Ben Gotow c29220365a fix(updater): Send UUID and email accounts to enable more specific update distribution 2015-10-03 14:45:39 -07:00
Ben Gotow 696c3dc097 bump(version): 0.3.11 2015-10-02 17:17:22 -07:00