mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-12-27 02:23:28 +08:00
4a738602ab
commit50d0cfb87c
Author: Ben Gotow <bengotow@gmail.com> Date: Fri May 27 14:01:49 2016 -0700 IdentityStore conveniene methods for subscription state commit80c3c7b956
Author: Ben Gotow <bengotow@gmail.com> Date: Fri May 27 12:03:53 2016 -0700 Periodically refresh identity, show expired notice in top bar commit5dc39efe98
Merge:4c4f463
906ea74
Author: Juan Tejada <juans.tejada@gmail.com> Date: Thu May 26 15:17:46 2016 -0700 Merge branch 'bengotow/n1-pro' of github.com:nylas/N1 into bengotow/n1-pro commit4c4f463f4b
Author: Juan Tejada <juans.tejada@gmail.com> Date: Thu May 26 15:16:48 2016 -0700 Hijack links inside email that go to billing site and add SSO to them commit906ea74807
Author: Ben Gotow <bengotow@gmail.com> Date: Thu May 26 12:02:29 2016 -0700 Add custom welcome page for upgrading users commit2ba9aedfe9
Author: Juan Tejada <juans.tejada@gmail.com> Date: Wed May 25 17:27:12 2016 -0700 Add styling to Subscription tab in prefs commit384433a338
Author: Ben Gotow <bengotow@gmail.com> Date: Wed May 25 16:21:18 2016 -0700 Add better style reset, more IdentityStore changes commitc4f9dfb4e4
Author: Ben Gotow <bengotow@gmail.com> Date: Wed May 25 15:29:41 2016 -0700 Add subscription tab commitbd4c25405a
Author: Ben Gotow <bengotow@gmail.com> Date: Wed May 25 14:18:40 2016 -0700 Point to billing-staging for now commit578e808bfc
Author: Ben Gotow <bengotow@gmail.com> Date: Wed May 25 13:30:13 2016 -0700 Rename account helpers > onboarding helpers commitdfea0a9861
Author: Ben Gotow <bengotow@gmail.com> Date: Wed May 25 13:26:46 2016 -0700 A few minor fixes commit7110217fd4
Author: Ben Gotow <bengotow@gmail.com> Date: Wed May 25 12:58:21 2016 -0700 feat(onboarding): Nylas Pro onboarding overhaul Summary: Rip out all invite-related code Enable Templates and Translate by default Scrub packages page, unused code in onboarding pkg Remove resizing New onboarding screens IMAP provider list, validation Call success with response object as well Renaming and tweaks Test Plan: No tests yet Reviewers: evan, juan, jackie Differential Revision: https://phab.nylas.com/D2985 commitdc9ea45ca9
Author: Ben Gotow <bengotow@gmail.com> Date: Wed May 25 12:52:39 2016 -0700 Renaming and tweaks commit5ca4cd31ce
Author: Ben Gotow <bengotow@gmail.com> Date: Wed May 25 11:03:57 2016 -0700 Call success with response object as well commit45f14f9b00
Author: Ben Gotow <bengotow@gmail.com> Date: Tue May 24 18:26:38 2016 -0700 IMAP provider list, validation commitc6ca124e6e
Author: Ben Gotow <bengotow@gmail.com> Date: Sat May 21 11:14:44 2016 -0700 New onboarding screens commitdad918d926
Author: Ben Gotow <bengotow@gmail.com> Date: Thu May 19 16:37:31 2016 -0700 Remove resizing commitecb1a569e2
Author: Ben Gotow <bengotow@gmail.com> Date: Thu May 19 16:36:04 2016 -0700 Scrub packages page, unused code in onboarding pkg commit3e0a44156c
Author: Ben Gotow <bengotow@gmail.com> Date: Thu May 19 16:33:12 2016 -0700 Enable Templates and Translate by default commit0d218bc86f
Author: Ben Gotow <bengotow@gmail.com> Date: Thu May 19 16:30:47 2016 -0700 Rip out all invite-related code
106 lines
3.6 KiB
JavaScript
106 lines
3.6 KiB
JavaScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import N1Launcher from './helpers/n1-launcher';
|
|
import {currentConfig, FAKE_DATA_PATH} from './helpers/config-helper';
|
|
import {assertBasicWindow, assertNoErrorsInLogs} from './helpers/shared-assertions';
|
|
import {clickRepeat, wait} from './helpers/client-actions';
|
|
|
|
describe('Clean app boot', ()=> {
|
|
beforeAll((done)=>{
|
|
// Boot in dev mode with no arguments
|
|
this.app = new N1Launcher(['--dev'], N1Launcher.CLEAR_CONFIG);
|
|
this.app.onboardingWindowReady().finally(done);
|
|
});
|
|
|
|
afterAll((done)=> {
|
|
if (this.app && this.app.isRunning()) {
|
|
this.app.stop().finally(done);
|
|
} else {
|
|
done();
|
|
}
|
|
});
|
|
|
|
it("has the autoupdater pointing to the correct url when there's no config loaded", () => {
|
|
this.app.client.execute(()=>{
|
|
const app = require('electron').remote.getGlobal('application');
|
|
return {
|
|
platform: process.platform,
|
|
arch: process.arch,
|
|
feedUrl: app.autoUpdateManager.feedURL,
|
|
};
|
|
}).then(({value})=>{
|
|
const base = 'https://edgehill.nylas.com/update-check';
|
|
const config = currentConfig();
|
|
// NOTE: Since there's no loaded config yet (we haven't logged in),
|
|
// a random id will be sent with no emails
|
|
const url = `${base}?platform=${value.platform}&arch=${value.arch}&version=${config.version}`;
|
|
expect(value.feedUrl.indexOf(url)).toBe(0);
|
|
});
|
|
});
|
|
|
|
assertBasicWindow.call(this);
|
|
|
|
it('has width', (done)=> {
|
|
this.app.client.getWindowWidth()
|
|
.then((result)=> expect(result).toBeGreaterThan(0) )
|
|
.finally(done);
|
|
});
|
|
|
|
it('has height', (done)=> {
|
|
this.app.client.getWindowHeight()
|
|
.then((result)=> expect(result).toBeGreaterThan(0) )
|
|
.finally(done);
|
|
});
|
|
|
|
it('can sign up using Gmail', ()=> {
|
|
// TODO
|
|
});
|
|
|
|
it('can sign up using Exchange', (done)=> {
|
|
const client = this.app.client;
|
|
const fakeAccountJson = fs.readFileSync(
|
|
path.join(FAKE_DATA_PATH, 'account_exchange.json'),
|
|
'utf8'
|
|
);
|
|
|
|
client.execute((jsonStr)=> {
|
|
// Monkeypatch NylasAPI and EdgehillAPI
|
|
const json = JSON.parse(jsonStr);
|
|
$n._nylasApiMakeRequest = $n.NylasAPI.makeRequest;
|
|
$n._edgehillRequest = $n.EdgehillAPI.makeRequest;
|
|
$n.NylasAPI.makeRequest = ()=> {
|
|
return Promise.resolve(json);
|
|
};
|
|
$n.EdgehillAPI.makeRequest = ({success})=> {
|
|
success(json);
|
|
};
|
|
}, fakeAccountJson)
|
|
.then(()=> clickRepeat(client, '.btn-continue', {times: 3, interval: 500}))
|
|
.then(()=> client.click('.provider.exchange'))
|
|
.then(()=> wait(500))
|
|
.then(()=> client.click('input[data-field="name"]'))
|
|
.then(()=> client.keys('name'))
|
|
.then(()=> client.click('input[data-field="email"]'))
|
|
.then(()=> client.keys('email@nylas.com'))
|
|
.then(()=> client.click('input[data-field="password"]'))
|
|
.then(()=> client.keys('password'))
|
|
.then(()=> client.click('.btn-add-account'))
|
|
.then(()=> wait(500))
|
|
.then(()=> {
|
|
// Expect the onboarding window to have no errors at this point
|
|
return assertNoErrorsInLogs(client);
|
|
})
|
|
.then(()=> client.click('button.btn-large'))
|
|
.then(()=> wait(500))
|
|
.then(()=> client.click('.btn-get-started'))
|
|
.then(()=> wait(500))
|
|
.then(()=> N1Launcher.waitUntilMatchingWindowLoaded(client, N1Launcher.mainWindowLoadedMatcher))
|
|
.then(()=> {
|
|
// Expect the main window logs to contain no errors
|
|
// This will run on the main window because waitUntilMatchingWindowLoaded
|
|
// focuses the window after its loaded
|
|
return assertNoErrorsInLogs(client);
|
|
})
|
|
.finally(done);
|
|
});
|
|
});
|