Commit graph

42 commits

Author SHA1 Message Date
Evan Morikawa ced66902d5 test(contenteditable): add in contenteditable list specs 2015-12-02 13:41:47 -08:00
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
Evan Morikawa 971089aeb0 fix(build): bail if script/bootstrap fails and enhance test output
Have the test output
2015-11-23 14:34:18 -05:00
Juan Tejada b814c54c88 refactor(script/docs): Add comments 2015-11-17 18:09:46 -08:00
Juan Tejada 02a5e8f5c8 Add docs script to automatically move output of grunt docs to gh-pages 2015-11-17 18:03:24 -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 8ed77c951a fix(win32): Allow npm dedupe to error, succeeds anyway 2015-11-06 15:47:28 -08:00
Ben Gotow bfd3139f19 fix(win10): Ignore stdout from apmDedupe 2015-11-06 14:35:30 -08:00
Ben Gotow 417a9a0f10 fix(paths): Flatten npm inside of apm to cut 20 chars from max path length 2015-11-03 12:00:43 -08:00
Ben Gotow a2e0a57cbf fix(bootstrap): Always use npm3 in ./build to install apm 2015-10-27 17:04:14 -07:00
Ben Gotow d0ff96c8a3 ⇧(npm): Move to NPM3 to shorten paths on Win32 2015-10-27 16:23:12 -07:00
Evan Morikawa e1529efbf5 feat(windows): updated docs and fix for building on 64-bit 2015-10-23 12:55:44 -07:00
Ben Gotow 68323f05f7 ci(mac): Rename the app Nylas N1 on the Mac 2015-10-20 18:36:39 -07:00
Ben Gotow ff34e7c5e8 fix(bootstrap): Don't fail when path contains spaces 2015-10-14 10:46:27 -07:00
solnj 3c243b9345 fix(script): allow x64 build on Windows
Electron is available for 64-bit Windows machines(https://github.com/atom/electron/issues/980), so we don't need the 32-bit check anymore. Reference: https://github.com/nylas/N1/issues/28
2015-10-12 11:02:07 -04:00
Ben Gotow d1be3ac0f2 rollback(*): Move back SQLite upgrade after crashing in popout drafts 2015-10-09 13:25:39 -07:00
Matt Bilker 543e3ba6ee refactor(code): change atom to nylas in clean script 2015-10-07 21:34:07 -04: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
Matt Bilker 03e2f180b7 Use npm's packaged node-gyp and combine configure and rebuild gyp steps 2015-10-06 23:41:19 -04:00
Matt Bilker cab1c9e4ca Target node version used by APM 1.1.1 and Electron 0.30.7
node-gyp header layout change in node v4, causes package builds to fail.

This change forces node-gyp to download the correct version of node so
native extensions can be built.
2015-10-06 23:40:35 -04:00
Christine Spang d6608c4c50 Install package repo for autoupdates in Debian packages. 2015-10-04 19:38:16 -07:00
Evan Morikawa b9bd402b3d copy(readme): update readmes 2015-10-02 13:24:39 -07:00
Evan Morikawa f6ef8a8b0c refactor(n1): change launch script to N1.sh 2015-10-02 11:58:38 -07:00
Ben Gotow 9a3356c5e9 fix(docs): Replace docs references to Edgehill with N1 2015-09-29 09:45:02 -07:00
Ben Gotow 3ccc5e3d99 rename(Nylas Mail): Replace Nylas Mail > N1 2015-09-29 09:44:30 -07:00
Ben Gotow c21bc9498c fix(build-flow): New integration test at the end of mac builds 2015-08-18 18:04:47 -07:00
Ben Gotow eb04f81495 fix(build): Linux needs to build sqlite after pulling electron 2015-07-31 12:14:14 -07:00
Ben Gotow c294eb5df4 fix(sqlite): Connect to sqlite directly rather than sending queries over IPC (twice...)
Summary:
- We now build sqlite3 manually from source in script/bootstrap
- We now allow queries to run in parallel outside of transaction blocks

- When signining in and out, the main window creates the database file and then advances the database "phase", which allows all the windows to connect to the initialized database.

This diff also fixes T2411 where popout drafts opened twice, and several issues around Windows icons and install.

Test Plan: Run existing tests

Reviewers: evan

Reviewed By: evan

Maniphest Tasks: T2411

Differential Revision: https://phab.nylas.com/D1815
2015-07-30 18:09:20 -07:00
Ben Gotow 5ee5079c5e fix(bootstrap): Fix syntax bug in script bootstrap 2015-07-24 19:48:31 -07:00
Ben Gotow bdc849c22b fix(build): Actually install package dependencies 2015-07-24 19:12:25 -07:00
Evan Morikawa e8f002ac5d refactor(cruft): remove old Atom docs and other cruft
Summary:
Getting rid of things that I'm pretty sure we don't need. Lmk if you see
anything to the otherwise.

Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1799
2015-07-24 14:27:21 -07:00
Rob McQueen eb36729651 Separate notifications if less than five
Summary: If less than 5 new unread notifications, then show notification for each new message. Each message is separated by 1 second

Test Plan: Added test to make sure Notification is called multiple times

Reviewers: bengotow

Reviewed By: bengotow

Maniphest Tasks: T1295

Differential Revision: https://phab.nylas.com/D1744
2015-07-15 13:18:10 -07:00
Ben Gotow 82e5cb6509 fix(linux-build): Move the license file out of app so it works with ASAR 2015-05-21 18:22:11 -07:00
Evan Morikawa 7bd3f7ac78 update linter to look at all less files
Test Plan: script/grunt lint

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1549
2015-05-21 14:50:40 -07:00
Evan Morikawa 0588b0c7eb refactor(code): replace all instances of atom-shell and AtomShell and atomShell
Test Plan: edgehill --test

Reviewers: bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D1537
2015-05-20 10:20:10 -07:00
Ben Gotow 8133cc88d6 feat(logging): Developer bar, verbose logging to logstash, Electron 0.26.0
Summary:
- We now make verbose log files continuously as you use the app
- We ship the logs to LogStash via S3 when an exception occurs
- We log the DatabaseStore, ActionBridge and Analytics packages

- We are now on the latest version of Electron 0.26.0
- We are now on Chrome 42 and io.js 1.4.3
- We should be setup to use ASAR soon.

Update atom.sh to reflect that we're now electron

oniguruma was unnecessary

correctly find log files that haven't been shipped yet

Fix a small issue with nodeIsVisible after upgrade to Chrome 42

Delete old logs, better logging from database store, don't ship empty logs

Test Plan: Run existing tests

Reviewers: evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D1531
2015-05-19 17:02:46 -07:00
Ben Gotow 2464888d28 fix(naming): Mac menus and Info.plist should say Nylas Mail 2015-05-16 11:12:43 -07:00
Ben Gotow 9378f4480c fix(naming): Move atom/inbox/nilas refs to Nylas
Conflicts:
	internal_packages/inbox-activity-bar/lib/activity-bar-long-poll-item.cjsx
2015-05-15 11:07:28 -07:00
Evan Morikawa e2cd2e41ba fix(setup): update atom shell download task 2015-05-10 23:33:21 -07:00
Ben Gotow d8dbe90c97 fix(windows): Windows build changes 2015-03-05 13:19:24 -08:00
Ben Gotow 1e8fd46342 fix(drafts): Various improvements and fixes to drafts, draft state management
Summary:
This diff contains a few major changes:

1. Scribe is no longer used for the text editor. It's just a plain contenteditable region. The toolbar items (bold, italic, underline) still work. Scribe was causing React inconcistency issues in the following scenario:
   - View thread with draft, edit draft
   - Move to another thread
   - Move back to thread with draft
   - Move to another thread. Notice that one or more messages from thread with draft are still there.

There may be a way to fix this, but I tried for hours and there are Github Issues open on it's repository asking for React compatibility, so it may be fixed soon. For now contenteditable is working great.

2. Action.saveDraft() is no longer debounced in the DraftStore. Instead, firing that action causes the save to happen immediately, and the DraftStoreProxy has a new "DraftChangeSet" class which is responsbile for batching saves as the user interacts with the ComposerView. There are a couple big wins here:

   - In the future, we may want to be able to call Action.saveDraft() in other situations and it should behave like a normal action. We may also want to expose the DraftStoreProxy as an easy way of backing interactive draft UI.

   - Previously, when you added a contact to To/CC/BCC, this happened:

     <input> -> Action.saveDraft -> (delay!!) -> Database -> DraftStore -> DraftStoreProxy -> View Updates

Increasing the delay to something reasonable like 200msec meant there was 200msec of lag before you saw the new view state.

To fix this, I created a new class called DraftChangeSet which is responsible for accumulating changes as they're made and firing Action.saveDraft. "Adding" a change to the change set also causes the Draft provided by the DraftStoreProxy to change immediately (the changes are a temporary layer on top of the database object). This means no delay while changes are being applied. There's a better explanation in the source!

This diff includes a few minor fixes as well:

1. Draft.state is gone—use Message.object = draft instead
2. String model attributes should never be null
3. Pre-send checks that can cancel draft send
4. Put the entire curl history and task queue into feedback reports
5. Cache localIds for extra speed
6. Move us up to latest React

Test Plan: No new tests - once we lock down this new design I'll write tests for the DraftChangeSet

Reviewers: evan

Reviewed By: evan

Differential Revision: https://review.inboxapp.com/D1125
2015-02-03 16:24:31 -08:00