Commit graph

1430 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
bc839fb541 fix(labels): Allow user to label as spam or trash from the dropdown
Also fixes the sort ordering of standard labels in the category picker. Fixes #555
2015-12-02 11:43:37 -08:00
Ben Gotow
f95a5a3548 fix($n): Expose nylas-exports as $n on the console 2015-12-02 11:11:06 -08:00
Ben Gotow
092956b379 feat(keybindings): Show all keybindings in prefs 2015-12-01 18:31:19 -08:00
Drew Regitsky
465d60489f fix(event-rsvp): fix issue with event RSVPs being repeatedly resent
Event RSVPs would resend every time the app was opened, due to `resolve`
never being called on the `Promise` after successfully sending an event
RSVP.
2015-12-01 17:39:47 -08:00
Ben Gotow
c4ef6ed56c fix(menu): On Win32, display autoupdate / debug toggle in menu
Fixes #375
2015-12-01 17:00:11 -08:00
Drew Regitsky
786304872a fix(examples): small fixes in READMEs 2015-12-01 15:59:00 -08:00
Drew Regitsky
589972c555 fix(examples): Small fixes to QuickSchedule plugin 2015-12-01 15:35:31 -08:00
Evan Morikawa
f3d58aaede refactor(contenteditable): use DOM mutation observers
Summary: This uses DOM mutation observers instead of `onInput`

Test Plan: manual and new integration tests

Reviewers: bengotow, juan

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

feat(contenteditable): add bold, underline, etc keymaps

Moving button extensions out of toolbar

Extracted floating toolbar buttons

Convert ContenteditableExtension to new spec

Update packages to use new callback signature

Fix specs
2015-12-01 15:31:03 -08:00
Ben Gotow
b4dda021b1 fix(tray): On Win32 / Linux click should open main window if closed 2015-12-01 14:46:08 -08:00
Ben Gotow
9371f7f9ba fix(quit): On Win32, Linux, N1 should not quit when the main window is closed
Fixes #475
2015-12-01 14:08:26 -08:00
Ben Gotow
99c20f3b56 fix(badge): Badge respects option in prefs
Fixes #516
2015-11-30 19:17:35 -08:00
Michael Grinich
10d607080c Update README.md 2015-11-30 18:37:24 -08:00
Michael Grinich
c156e11b98 Update README.md 2015-11-30 18:36:52 -08:00
Michael Grinich
33266a2e1f add example images 2015-11-30 18:35:44 -08:00
Michael Grinich
a06e09f27f Update README.md 2015-11-30 18:33:17 -08:00
Michael Grinich
b518099257 Update README.md 2015-11-30 18:33:03 -08:00
Juan Tejada
e804dbf69f feat(shortcuts): Add listeners for unread/important keyboard shortcuts
Summary:
- Adds KeyCommandRegions to hook up missing listeners for marking as unread and
  important keyboard shortcuts
- Updates specs

Test Plan: - All tests pass

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2300
2015-11-30 18:29:45 -08:00
Juan Tejada
40bde98854 fix(error): Define mapSourcePosition in nylas-env to prevent undefined error 2015-11-30 18:21:10 -08:00
Ben Gotow
b2844c0c98 bump(changelog): Add a few more notes about 0.3.26 2015-11-30 18:01:13 -08:00
Ben Gotow
864e19d6b0 feat(rsvp): "Quick RSVP" to events recongized by the API 2015-11-30 17:12:45 -08:00
Evan Morikawa
3eb12507f1 feat(contenteditable): add bold, underline, etc keymaps 2015-11-30 16:15:53 -08:00
Juan Tejada
cfdc401c54 update(extensions): Rename DraftStoreExtension and MessageStoreExtension
Summary:
- Rename DraftStoreExtension to ComposerExtension
- Rename MessageStoreExtension to MessageViewExtension
- Rename ContenteditablePlugin to ContenteditableExtension
  - Update Contenteditable to use new naming convention
  - Adds support for extension handlers as props
- Add ExtensionRegistry to register extensions:
  - ContenteditableExtensions will not be registered through the
    ExtensionRegistry. They are meant for internal use, or if anyone wants
    to use our Contenteditable component directly in their plugins.
  - Adds specs
- Refactors internal_packages and src to use new names and new ExtensionRegistry api
- Adds deprecation util function and deprecation notices for old api methods:
  - DraftStore.{registerExtension, unregisterExtension}
  - MessageStore.{registerExtension, unregisterExtension}
  - DraftStoreExtension.{onMouseUp, onTabDown}
  - MessageStoreExtension
- Adds and updates docs

Test Plan: - Unit tests

Reviewers: bengotow, evan

Reviewed By: evan

Differential Revision: https://phab.nylas.com/D2293
2015-11-30 16:08:05 -08:00
Ben Gotow
02633ffd57 fix(build): Temporarily disable tests on linux CI. See details
The linux CI server @ Nylas is running debian wheezy, which is too old to run N1 / Electron 0.35+. We need to switch to making the builds with Travis or https://packagecloud.io/.
2015-11-30 15:04:28 -08:00
Ben Gotow
c2055907f3 fix(signatures): Monospace font, nested scrolling fix 2015-11-30 14:26:11 -08:00
Ben Gotow
6150d51eda bump(version): 0.3.26 and updated Changelog 2015-11-30 14:11:31 -08:00
Evan Morikawa
8292a6ff68 feat(signatures): add raw signature support 2015-11-30 14:02:58 -08:00
Ben Gotow
25d4f6cd31 fix(signatures): Display signatures tab, blur after prefs changes 2015-11-30 13:39:42 -08:00
Ben Gotow
9899de30a2 fix(specs): Remove promise usage, process.env as fn to fix node 0.10 2015-11-30 12:39:17 -08:00
Ben Gotow
7c74957b57 Merge pull request #496 from mbilker/fedora-icons
fix(rpm): copy N1 icons into hicolor folder
2015-11-30 11:57:20 -08:00
Evan Morikawa
f9dd31b94c feat(signatures): add signature support
Summary:
Add signatures back in.

Extract contenteditable css to its own file instead of being bundled with
the composer.

Test Plan: manual

Reviewers: juan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2295
2015-11-30 11:48:24 -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
Evan Morikawa
847ac1f10e Update travis.yml for only branches 2015-11-29 21:30:11 -08:00
Juan Tejada
10f291eb4e fix(prefs): Focus main window when open prefs and prevent dupe sheets
- Fixes #498
- Fixes #484
2015-11-28 09:08:45 -08:00
Juan
c849f95674 Merge pull request #497 from enrique-ramirez/fix-dock-icon-open
Removing deprecated 'activate-with-no-open-windows' event
2015-11-28 09:04:04 -08:00
Enrique Ramírez
048ac6a214 Removing deprecated 'activate-with-no-open-windows' event
As mentioned on this Electron's issue: https://github.com/atom/electron/pull/2777

The 'activate-with-open-windows' event has been deprecated in favor of a global 'activate' event with a 'hasVisibleWindows' parameter.

This fixes Nylas from crashing when closing the main window and opening via clicking the Dock icon.
2015-11-27 17:05:33 -06:00
mbilker
e3460a7a9b fix(redhat-spec): copy 512x512 icon to /usr/local/share/nylas/resources/app/nylas.png
The icon build/resources/nylas.png is exactly the same as build/resources/linux/icons/512.png
Not confident that the spec script is run from base N1 directory to use the nylas.png in the spec file
2015-11-27 16:20:04 -05:00
mbilker
e32d52ff3d fix(grunt): update location of rpm icon name 2015-11-27 15:18:46 -05:00
mbilker
c46a38362f fix(fedora-spec): copy nylas icons into hicolor folder 2015-11-27 14:41:53 -05:00
Evan Morikawa
2dea234de0 fix(task): spec task uses Promise 2015-11-26 13:03:44 -08:00
Ben Gotow
79413e7c45 fix(autolinker): Add title attr to all links in emails to display href
Fixes GitHub Issues #479 and #335
2015-11-25 18:29:59 -08:00
Ben Gotow
0a413a1598 fix(sidebar): selected is not actually a required prop
Fixes #476
2015-11-25 16:30:01 -08:00
Ben Gotow
4b96ac4bc3 fix(deprecation): app.terminate deprecated in favor of quit 2015-11-25 16:28:08 -08:00
Ben Gotow
72a840e1f0 rm(spectron): Don't run during CI builds, it's timeout-based and fails randomly 2015-11-25 15:06:34 -08:00
Ben Gotow
eeb976167e fix(license): Mark a few additional packages as GPLv3 2015-11-25 14:41:10 -08:00
Ben Gotow
1889bfac9d Merge pull request #396 from luixal/patch-2
Allows package to be installed in ElementaryOS
2015-11-25 14:38:17 -08:00
Ben Gotow
5bb417c66c Merge pull request #453 from dcposch/fix-license
Internal package.json license: GPLv3
2015-11-25 14:37:54 -08:00
Ben Gotow
cb756f4f07 fix(composer): Don't pass a callback to dialog API, update changelog 2015-11-25 14:13:21 -08:00
Ben Gotow
06b35cde7c fix(work): Treat work window as if it's always visible 2015-11-25 12:38:59 -08:00
Ben Gotow
1739a19d21 fix(counts): Ensure serial execution of persistModels, unpersistModels
Summary:
reduce scope of changes

more changes

Test Plan: Run 1 new test

Reviewers: juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D2290
2015-11-25 12:17:00 -08:00