Commit graph

98 commits

Author SHA1 Message Date
Ben Gotow
433b218f48 fix(ci): stable instead of release/* branches 2015-12-11 17:13:42 -08:00
Ben Gotow
f16f97eaea fix(ci): Publish appveyor release branch builds 2015-12-11 15:11:13 -08:00
Ben Gotow
7ea0202cc7 fix(ci): Publish builds on release branches 2015-12-11 14:44:53 -08:00
mbilker
7b037ae8f2 fix(tests): replace () with [] for properties of process.env
This bug appeared during a Travis test run, and only appeared on
the Linux hosts running the tests. The function appears to treat
the `process.env` as a set of functions, not properties. This
commit correctly interprets them as properties.
2015-12-08 18:06:41 -05:00
Evan Morikawa
989f38ca77 feat(ci): add Travis and AppVeyor ci support 2015-12-07 12:48:26 -05:00
Evan Morikawa
e9936581be feat(build): add nylas resources 2015-12-02 15:12:56 -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
734e670e81 fix(specs): Remove promise usage, process.env as fn to fix node 0.10 2015-11-30 12:39:17 -08:00
mbilker
e532fa91f8 fix(grunt): update location of rpm icon name 2015-11-27 15:18:46 -05:00
Evan Morikawa
a69dad52a3 fix(task): spec task uses Promise 2015-11-26 13:03:44 -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
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
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
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
595f80f75f fix(packaging): Resolve codesign issue on 10.11 due to bad symlink 2015-10-30 15:27:39 -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
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
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
Michael Grinich
1772a43878 actually no more gh-pages 2015-10-05 05:08:53 -07:00
Christine Spang
c8818c3c19 Also remove /usr/bin/apm symlink in install task. 2015-10-04 22:12:31 -07:00
Christine Spang
0781326552 Don't symlink /usr/bin/apm on Linux and Mac.
This makes us conflict with the official 'atom' Linux package. No bueno.
Doesn't really make sense for us to install this system-wide on Mac
either.

Fixes T3713.
2015-10-04 21:47:03 -07:00
Christine Spang
1978d1db9e Merge branch 'debian-autoupdate' 2015-10-04 19:39:12 -07:00
Christine Spang
bc969b1dae Install package repo for autoupdates in Debian packages. 2015-10-04 19:38:16 -07:00
dillon
a9c4c55f75 fix broken links 2015-10-04 14:28:00 -07:00
Ben Gotow
82f51ce68a fix(docs): Push examples to the correct /examples URL 2015-10-02 16:09:49 -07:00
Evan Morikawa
31125cf699 refactor(n1): change launch script to N1.sh 2015-10-02 11:58:38 -07:00
Ben Gotow
a2c697754a fix(docs): Moving to use jekyll on gh-pages 2015-10-02 10:55:18 -07:00
Evan Morikawa
009f07dd2a refactor(dir): move exports to src/global and consolidate tests
Summary:
This:

1. Moves spec-nylas into spec
1. Gets rid of old & irrelevant specs
1. Moves the `vendor` folder (jasmine libs) into the `spec` folder
1. Moves the `exports` folder to `src/global` and updates all references

I pretty extensively made sure the client still works and that all of the
tests pass. The changes should have no effect.

Test Plan: All tests pass!

Reviewers: bengotow, dillon

Differential Revision: https://phab.nylas.com/D2098
2015-10-02 09:19:37 -07:00
Evan Morikawa
137e09eb51 refactor(spec) move spec-nylas to spec 2015-10-01 21:39:44 -07:00
Evan Morikawa
8872a02405 refactor(exports): move exports to src/global 2015-10-01 21:23:37 -07:00
Ben Gotow
a1d4e6e729 fix(docs): Updating docs (round 1 of many) 2015-10-01 13:19:34 -07:00
Evan Morikawa
c307dd3040 refactor(docs): move docs-templates into docs 2015-10-01 09:58:51 -07:00
Evan Morikawa
dd91c38010 fix(*): fix references and remove cruft 2015-10-01 09:56:05 -07:00
Ben Gotow
f526f79dde fix(s3): Content-Disposition => ContentDisposition 2015-09-30 11:44:53 -07:00