Commit graph

135 commits

Author SHA1 Message Date
Evan Morikawa 989f38ca77 feat(ci): add Travis and AppVeyor ci support 2015-12-07 12:48:26 -05:00
Juan Tejada 69a50365bc feat(components): Add EditableList component to component-kit
Summary:
- Generic list component wich supports adding, editing and removing
string-like items or components
- Needs some css love

Test Plan: - Unit tests.

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2322
2015-12-07 08:15:40 -08:00
Evan Morikawa e9936581be feat(build): add nylas resources 2015-12-02 15:12:56 -08:00
Evan Morikawa be60f38daf feat(build): add nylas build resources 2015-12-02 13:59:54 -08:00
Evan Morikawa c3ecca2692 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 beda078c56 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 734e670e81 fix(specs): Remove promise usage, process.env as fn to fix node 0.10 2015-11-30 12:39:17 -08:00
mbilker c200306eeb 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 e532fa91f8 fix(grunt): update location of rpm icon name 2015-11-27 15:18:46 -05:00
mbilker ba5a8ed432 fix(fedora-spec): copy nylas icons into hicolor folder 2015-11-27 14:41:53 -05:00
Evan Morikawa a69dad52a3 fix(task): spec task uses Promise 2015-11-26 13:03:44 -08:00
Ben Gotow c1746416fa 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 9ff5430040 Merge pull request #396 from luixal/patch-2
Allows package to be installed in ElementaryOS
2015-11-25 14:38:17 -08:00
mbilker 2967e2e495 fix(spectron): prevent execution for windows only 2015-11-24 00:17:00 -05:00
mbilker 4153741566 fix(spectron): typo with darwin 2015-11-23 23:34:37 -05:00
mbilker 2f39668fd0 fix(spectron): reenable for Linux and choose executablePath based on platform 2015-11-23 23:31:37 -05:00
mbilker 40d67b5632 fix(travis): enable fake Xorg window to allow electron testing on Linux 2015-11-23 23:31:37 -05:00
Ben Gotow 0c2cf4044e fix(spectron): Run against built version of the app to avoid timeouts 2015-11-23 18:54:42 -08:00
Evan Morikawa b9d6e89879 fix(spec): cleanup N1.sh and make specs fail with exit code 1 2015-11-23 16:00:55 -05:00
Evan Morikawa 05b50fd7bf fix(build): bail if script/bootstrap fails and enhance test output
Have the test output
2015-11-23 14:34:18 -05:00
mbilker 5644f84e4a 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
Juan Tejada 84739b3acc fix(spectron): Update spectron setup:
- Passes new arguments to spectron.Application
- Updates setup of test suite to wait for application to boot before
specs are run
2015-11-19 12:29:03 -08:00
Juan Tejada 53bd5ab2d0 ci(spectron): Add support to execute spectron/chrome-driver tests
Summary:
- Sets up spectron test suite inside its own directory and with its own
  dependencies (must run on a build of the app)
- Sets up dummy test
- Adds `run-spectron-specs` grunt task, and adds it to cibuild task
- Cleans up spec tasks code

Test Plan: - Run specs

Reviewers: evan, bengotow

Reviewed By: bengotow

Differential Revision: https://phab.nylas.com/D2256
2015-11-18 16:36:58 -08:00
Evan Morikawa 51602f69a5 refactor(env): new NylasEnv global
Converted all references of global atom to NylasEnv

Temporary rename atom.io

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.io/temporaryAtomIoReplacement/g'

atom.config to NylasEnv.config

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.config/NylasEnv.config/g'

atom.packages -> NylasEnv.packages

atom.commands -> NylasEnv.commands atom.getLoadSettings

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.commands/NylasEnv.commands/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getLoadSettings/NylasEnv.getLoadSettings/g'

More common atom methods

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.styles/NylasEnv.styles/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.emitError/NylasEnv.emitError/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.inSpecMode/NylasEnv.inSpecMode/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.inDevMode/NylasEnv.inDevMode/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getWindowType/NylasEnv.getWindowType/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.displayWindow/NylasEnv.displayWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.quit/NylasEnv.quit/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.close/NylasEnv.close/g'

More atom method changes

find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.keymaps/NylasEnv.keymaps/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.hide/NylasEnv.hide/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getCurrentWindow/NylasEnv.getCurrentWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.menu/NylasEnv.menu/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getConfigDirPath/NylasEnv.getConfigDirPath/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.isMainWindow/NylasEnv.isMainWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.finishUnload/NylasEnv.finishUnload/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.isWorkWindow/NylasEnv.isWorkWindow/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.showSaveDialog/NylasEnv.showSaveDialog/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.append/NylasEnv.append/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.confirm/NylasEnv.confirm/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.clipboard/NylasEnv.clipboard/g'
find -E . -regex ".*\.(coffee|cjsx|js|md|cmd|es6)" -print0 | xargs -0 sed
-i "" 's/atom.getVersion/NylasEnv.getVersion/g'

More atom renaming

Rename atom methods

More atom methods

Fix grunt config variable

Change atom.cmd to N1.cmd

Rename atom.coffee and atom.js to nylas-env.coffee nylas-env.js

Fix atom global reference in specs manually

Fix atom requires

Change engine from atom to nylas

got rid of global/nylas-env

rename to nylas-win-bootup

Fix onWindowPropsChanged to onWindowPropsReceived

fix nylas-workspace

atom-text-editor to nylas-theme-wrap

atom-text-editor -> nylas-theme-wrap

Replacing atom keyword

AtomWindow -> NylasWindow

Replace Atom -> N1

Rename atom items

nylas.asar -> atom.asar

Remove more atom references

Remove 6to5 references

Remove license exception for atom
2015-11-17 16:41:20 -08:00
Ben Gotow 96762647a9 ASAR v0.8, because apparently 0.5 can skip files 2015-11-16 10:02:31 -08:00
Christine Spang 286d34bb3d Merge pull request #301 from nicholascapo/update-libgcrypt-dependency
Update debian package libgcrypt dependency
2015-11-11 15:43:39 -08:00
Luis Alberto Pérez García 475c4aae3b Allows package to be installed in ElementaryOS
Changes the condition for detecting the distro name so ElementaryOS (ubuntu based) goes as an Ubuntu and the package installs.
2015-11-11 21:28:03 +01:00
Evan Morikawa ba584185cb fix(keymap): run cmdctrl preprocessor on build too 2015-11-09 15:09:04 -05:00
Ben Gotow 5074fde43b fix(deps): Go away git-utils, we never used you anyway 2015-11-07 18:05:24 -08:00
Ben Gotow eb8810e01b 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
Juan Tejada 5fa630b8c6 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
Ben Gotow ec61918634 fix(win10): Add more resolutions to the windows .ico
Fixes #351
2015-11-06 12:24:24 -08:00
Ben Gotow 595f80f75f fix(packaging): Resolve codesign issue on 10.11 due to bad symlink 2015-10-30 15:27:39 -07:00
Nicholas Capo 01f128441a Update debian package libgcrypt dependency
* Package libgcrypt11 is no longer available in Debian or Ubuntu
* Allow installing the package with libgcrypt20 instead
2015-10-29 21:00:49 -05:00
Asher Wood 8cbcace3ef Merge pull request #240 from Zeklandia/master
commit fc34b1fcb08a6f4a84e20c42eb2c6fd0952cf73a
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu Oct 29 13:37:59 2015 -0700

    Revert one small capitalization change on Windows

commit c4b30c9b84166bd8847c83b748da316f8861650e
Author: Ben Gotow <bengotow@gmail.com>
Date:   Thu Oct 29 12:56:32 2015 -0700

    Fix one remaining uppercase Nylas, remove unneeded build task

commit 1767341a36bd20990f884c636da236454fbf3761
Author: Asher Wood <awood5659@gmail.com>
Date:   Thu Oct 29 10:34:47 2015 -0700

    Update list of supported OSes

commit 2bac5a7e1c30ca63ae7be0d679b2a61a032449f9
Author: Asher Wood <awood5659@gmail.com>
Date:   Thu Oct 29 10:30:53 2015 -0700

    Nylas --> nylas

commit 19eed9bf096819df3588d82a4307770c1069c366
Author: Asher Wood <awood5659@gmail.com>
Date:   Thu Oct 29 10:17:55 2015 -0700

    Change '../Nylas' to `../nylas`

commit 9c7cba6ea29652d0d1544d51c387861984bc511a
Author: Asher Wood <awood5659@gmail.com>
Date:   Tue Oct 27 21:33:29 2015 -0700

    More uppercase/lowercase confusion. The icon is still not in the right place after install, but at least Nylas will open.

commit 30510f6978364398b7917917369b3f011b533606
Author: Asher Wood <awood5659@gmail.com>
Date:   Tue Oct 27 21:06:33 2015 -0700

    Fixed building rpms
    Many file paths had had `/usr/local/share/nylas` instead of `/usr/local/share/Nylas`
2015-10-29 13:46:47 -07:00
Ben Gotow 339da554b0 fix(cibuild): unlinkSync => rmdirSync 2015-10-27 18:45:59 -07:00
Ben Gotow a9bf2a39fe fix(cibuild): apm needs dependencies, fix for npm3 2015-10-27 18:29:14 -07:00
Ben Gotow 43a61d2471 rm(aws-sdk): Ship logs via request, eliminate aws-sdk 2015-10-27 16:35:38 -07:00
Ben Gotow 848fa10dee ⇧(npm): Move to NPM3 to shorten paths on Win32 2015-10-27 16:23:12 -07:00
Ben Gotow 9a6d51e595 ci(mac): Rename the app Nylas N1 on the Mac 2015-10-20 18:36:39 -07:00
Ben Gotow ef9a80b79b ci(win): N1.exe => N1Setup.exe (it's an installer) 2015-10-20 17:34:35 -07:00
Ben Gotow fdab49d31d ci(mac): Fix zip creation and upload for updater 2015-10-20 14:24:51 -07:00
Ben Gotow 2e3ce9cd90 ci(*): mkrpm only works on Fedora build machines, need to configure one 2015-10-20 13:43:12 -07:00
Ben Gotow ac2cbbf864 ci(*): Use publish-nylas-build on Linux 2015-10-20 13:31:09 -07:00
Ben Gotow ab263ecda5 ci(*): Put builds in /version/platform/arch 2015-10-19 18:44:58 -07:00
Ben Gotow 54622a8921 ci(*): Put builds in subdirectories, better for Squirrel.Win 2015-10-16 17:06:09 -07:00
Ben Gotow 41dfe2817b ci(*): Prevent external folks from posting to slack 2015-10-16 15:46:09 -07:00
Ben Gotow e1944008a9 ci(*): Fix Mac build filenames, zip uploads 2015-10-16 15:26:23 -07:00
Ben Gotow 73d976f038 ci(*): Put the commit hashes back in release filenames 2015-10-16 14:01:29 -07:00
Ben Gotow 274cf60aba ci(win): Fix build tasks to enable windows CI builds 2015-10-15 17:54:09 -07:00