Giter Site home page Giter Site logo

lathonez / clicker Goto Github PK

View Code? Open in Web Editor NEW
430.0 39.0 137.0 10.87 MB

Ionic 2 + @angular/cli Seed Project : Angular2 + Typescript + Karma + Protractor + Travis

Home Page: http://lathonez.com/2018/ionic-2-unit-testing/

License: MIT License

JavaScript 6.02% HTML 7.76% TypeScript 78.37% Dockerfile 1.88% SCSS 5.96%
ionic angular-cli seed unit-testing e2e-tests

clicker's People

Contributors

alexmgrant avatar beetz12 avatar chron0 avatar cklanac avatar danielagsb avatar dorontal avatar hfwittmann avatar juliocbcotta avatar kwv avatar lathonez avatar lazaromenezes avatar lholznagel avatar m5rk avatar marcmeans avatar mbakker96 avatar mchapman avatar muhammedbasilsk avatar pvdyck avatar ric9176 avatar snyk-bot avatar spencer-whitman avatar stonelasley avatar tja4472 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

clicker's Issues

support for requirejs

This is rather a question as I wonder what are the possible options when the Ionic 2 app code uses some modules that depends on requirejs.
Currently Ionic 2 app uses any npm modules pretty flawlessly through provided or manually crafted typings.
I've tried to write a test for such class depending on requirejs module and first thing is to provide somehow the requirejs to the karma. I've added node_modules/requirejs/require.js to the karma.config.js files then needed to add also mappings to karma.config.js and test.main.js System.config and then some other sub-depenecies where missing. I wonder if it would be possible to adapt the way modules are loading into the Ionic app.

Cloud emulation provider

As suggested by @mebibou, the following quotes from #42 directly -

Also, I don't know if you know ripple-emulator, but it allows you to run your app like an Android or iPhone app with some Cordova features (or writing your own bridges if you need more). Here's my full protractor.conf.js to give you an idea:

exports.config = {
  seleniumAddress: 'http://localhost:4444/wd/hub',
  seleniumPort: 4444,
  chromeDriver: '../node_modules/protractor/selenium/chromedriver',
  directConnect: true,
  framework: 'jasmine2',
  baseUrl: 'http://localhost:8100',
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--disable-web-security']
    }
  },
  specs: [
    'protractor/**/*.js'
  ],
  jasmineNodeOpts: {
    showColors: true,
    defaultTimeoutInterval: 30 * 1000,
    isVerbose: true
  },
  onPrepare: function() {
    // Use ripple emulator to run the tests
    var url = 'http://localhost:4400/?enableripple=cordova-3.0.0-' + browser.params.device;
    browser.driver.manage().window().maximize();
    browser.ignoreSynchronization = true;
    browser.driver.get(url);
    // Allow ripple to load
    browser.driver.wait(function() {
      return browser.driver.getCurrentUrl().then(function(actualUrl) {
        return url == actualUrl;
      });
    }, 10000, 'url hasnt changed');
    browser.driver.wait(function() {
      return element(by.id('document')).isPresent();
    }, 10000, 'ripple not loaded');
    browser.driver.switchTo().frame(0);
  }
};

Although this used to be working before, since I updated to ionic2-beta.3 it doesn't work anymore ๐Ÿ˜ž (ripple doesn't want to load anymore I don't know why)

server response 404 app.bundle.js

just cloned your project, great work. Thank you.

I got an issue on npm start: server response 404, can't find app.bundle.js

I can't figure out what I am missing, all unit tests are fine, no errors.

Thanks for your help.

Guenter

404: /build/app.html

Doc, I just saw this happening...

npm test

> clicker@ test /home/bunny/git/clicker
> gulp test

[18:44:23] Using gulpfile ~/git/clicker/gulpfile.js
[18:44:23] Starting 'test.lint'...
[18:44:23] Finished 'test.lint' after 9.04 ms
[18:44:23] Starting 'test.clean'...
[18:44:23] Finished 'test.clean' after 696 ms
[18:44:23] Starting 'test.compile'...
[18:44:26] Finished 'test.compile' after 2.44 s
[18:44:26] Starting 'test'...

START:
[18:44:28] Finished 'test' after 1.85 s
17 02 2016 18:44:30.166:INFO [karma]: Karma v0.13.21 server started at http://localhost:9876/
17 02 2016 18:44:30.171:INFO [launcher]: Starting browser PhantomJS2
17 02 2016 18:44:31.126:INFO [PhantomJS 2.0.0 (Linux 0.0.0)]: Connected on socket /#SHPeckG5qMhl0dE3AAAA with id 38429942
PhantomJS 2.0.0 (Linux 0.0.0) WARN: 'DEPRECATION WARNING: 'enqueueTask' is no longer supported and will be removed in next major release. Use addTask/addRepeatingTask/addMicroTask'
17 02 2016 18:44:33.296:WARN [web-server]: 404: /build/app.html
...

need to append /index onto ionic-angular - why?

We should be able to do

import { blah } from 'ionic-angular'

This causes Karma to crap out as it can't find ionic-angular.js.

import { blah } from 'ionic-angular/index'

is a workaround for now that satisfies everything, but not ideal.

Dependencies

@lathonez , I took a look at ionic-conference-app package.json and the starters... there is no reference to webpack as dependency. Do we really need it? I removed it from clicker and it seems to still work..

Test failed โ€“ 404: /base/moment.js

Hey there, I just wanted to say thanks for this repo and the write up! I've copied your setup in my project, but my test is failing due to karma being unable to find moment.js. I'm using moment.js in some of my implementation code.

I added moment to the paths map in system.config, as well as to files array in karma.config, but still no dice.

Obviously this isn't an issue with your guide or repository, but I figured you might be able to point me in the right direction?

How to use app.stub.ts

Hey lathonez, thx for this sample project. It's cute & really helpful. What I don't know is how to use app.stub.ts .

I know it is a stub for the @App decorator, but I don't know how to test decorators. Could u pls give me a little prompt? thx~

The reason why I want to test decorators is I want to get a full coverage report 100% ๏ผš๏ผ‰

Ionic Serve does not work.

After following all the instructions and resolving issues, I got the karma-jasmine unit tests working.
But when I run "ionic serve", a blank webpage is opened.

For some reason app.bundle.js is not generated under "www/build".

Also I noticed that in the tutorial
[22:54:02] Starting 'test.build'...
[22:54:04] TypeScript: emit succeeded <---- this appears
[22:54:04] Finished 'test.build' after 1.88 s

when I run this is what i see

[23:43:08] Starting 'test.build'...
[23:43:11] Finished 'test.build' after 2.64 s <-- typescript: emit success message is missing.
[23:43:11] Starting 'startKarma'...

Error:
http://localhost:8100/build/js/app.bundle.js is throwing a 404 error.

Can someone please help me resolve this?

Thanks!

travis-ci deploy asks for passphrase.

I got the build setup on travis and have successfully been able to launch it. The part where Im having difficulty is with the deployment to apps.ionic. I followed the encryption mechanism that travis-ci provides and was able to create a .enc file. I followed automated encryption: https://docs.travis-ci.com/user/encrypting-files/. The rest of the code is pretty much the same. When I try to deploy, I see a prompt for a passphrase in travis. Obviously I cannot enter anything.

Im not sure what I'm doing wrong. I need a little bit of education regarding this. Also when I use the file for encryption, what do I need to put in the file?

Please help me.

Roadmap

app.spec.ts is not included in the TypeScript compilation context

Man, just a side note cause you already saved the testing in my project...But I have an small issue... I use Atom + atom-typescript as editor + syntax and it gives me this following line when I open app.spec.ts (or any other test file for that matter)
The file "/home/bunny/git/clicker/test/app.spec.ts" is not included in the TypeScript compilation context. If this is not intended, please check the "files" or "filesGlob" section of your tsconfig.json file.at line 1 col 1
Would you help me to understand what should be the right approach to get rid of this warning?
I tried

"files": [
    "typings/tsd.d.ts",
    "app/app.ts",
   "test/**/*.ts"
  ],

, but it did not made the warning go way.
I also tried

"exclude": [
    "node_modules",
    "test"
  ],

but also had no effect.

Thanks

Unable to compile Typescript

I followed this tutorial to learn how to unit test an ionic 2 application. But when i run 'gulp test' in my test file i get a lot of errors:

cwmini:test Gebruiker$ gulp test
 Requiring external module ts-node/register
----------------------------------
โจฏ Unable to compile TypeScript

File '/Users/Gebruiker/projects/mobile/ClockWise/typings/browser/ambient/for typing in /for typing in /.d.ts' not found. (6053)
gulpfile.ts (7,31): Cannot find module 'ionic-app-lib'. (2307)
../typings/browser.d.ts (7,1): File '/Users/Gebruiker/projects/mobile/ClockWise/typings/browser/ambient/for typing in /for typing in /.d.ts' not found. (6053)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (8,14): Duplicate identifier 'PropertyKey'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (11,5): Duplicate identifier 'done'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (12,5): Duplicate identifier 'value'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (250,5): Duplicate identifier 'EPSILON'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (285,5): Duplicate identifier 'MAX_SAFE_INTEGER'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (292,5): Duplicate identifier 'MIN_SAFE_INTEGER'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (348,5): Duplicate identifier 'flags'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (500,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (563,5): Duplicate identifier 'size'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (572,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (583,5): Duplicate identifier 'size'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (592,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (607,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/es6-shim.d.ts (621,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (8,14): Duplicate identifier 'PropertyKey'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (11,5): Duplicate identifier 'done'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (12,5): Duplicate identifier 'value'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (250,5): Duplicate identifier 'EPSILON'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (285,5): Duplicate identifier 'MAX_SAFE_INTEGER'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (292,5): Duplicate identifier 'MIN_SAFE_INTEGER'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (348,5): Duplicate identifier 'flags'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (500,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (563,5): Duplicate identifier 'size'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (572,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (583,5): Duplicate identifier 'size'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (592,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (607,5): Duplicate identifier 'prototype'. (2300)
../typings/browser/ambient/es6-shim/index.d.ts (621,5): Duplicate identifier 'prototype'. (2300)

`

Does someone know how to fix this?

upgrade script / checklist

There's getting to be a lot of things to check each time ionic do an upgrade (#28). It'd be good to have a script / list of stuff to check each time.

Semantic errors tracker

We've got the following:

node_modules/ionic-framework/animations/animation.d.ts(48,51): error TS2526: A 'this' type is available only in a non-static member of a class or interface.
node_modules/ionic-framework/animations/animation.d.ts(54,51): error TS2526: A 'this' type is available only in a non-static member of a class or interface.

For which I've raised ionic-team/ionic-framework#5581

and

node_modules/angular2/src/facade/promise.d.ts(1,10): error TS2661: Cannot re-export name that is not defined in the module.

Which looks to be solved by angular/angular#6468, released in beta.7, though early reports suggest otherwise

Can't DOM test with ion-icon

FAILED TESTS:
  ClickerForm
    โœ– passes new clicker through to service
      Chrome 48.0.2564 (Linux 0.0.0)
    Error: EXCEPTION: InvalidCharacterError: Failed to execute 'add' on 'DOMTokenList': The token provided ('ion-[object Object]-add') contains HTML space characters, which are not valid in tokens. in [add in ]
    ORIGINAL EXCEPTION: InvalidCharacterError: Failed to execute 'add' on 'DOMTokenList': The token provided ('ion-[object Object]-add') contains HTML space characters, which are not valid in tokens.
    ORIGINAL STACKTRACE:
    Error: Failed to execute 'add' on 'DOMTokenList': The token provided ('ion-[object Object]-add') contains HTML space characters, which are not valid in tokens.

If using:

<ion-icon name="add-circle">

in clickerForm.html

Update to ionic beta 2 fails to find /base/ionic-angular.js

I migrated to the latest version of this repo and to the ionic beta 2, this is the log of npm test

[20:37:37] Requiring external module ts-node/register
[20:37:40] Using gulpfile ~/git/platypus/gulpfile.ts
[20:37:40] Starting 'test'...
[20:37:40] Starting 'test.clean'...
[20:37:40] Starting 'test.lint'...
[20:37:40] Deleted /home/bunny/git/platypus/www/build/test
[20:37:40] Finished 'test.clean' after 601 ms
[20:37:42] Finished 'test.lint' after 2.04 s
[20:37:42] Starting 'test.copyHTML'...
[20:37:42] Finished 'test.copyHTML' after 28 ms
[20:37:42] Starting 'test.build'...
/home/bunny/git/platypus/node_modules/angular2/src/facade/promise.d.ts(1,10): error TS2661: Cannot re-export name that is not defined in the module.
[20:37:44] TypeScript: 1 semantic error
[20:37:44] TypeScript: emit succeeded (with errors)
[20:37:44] Finished 'test.build' after 2.22 s
[20:37:44] Starting 'startKarma'...

START:
01 03 2016 20:37:45.953:INFO [karma]: Karma v0.13.21 server started at http://localhost:9876/
01 03 2016 20:37:45.962:INFO [launcher]: Starting browser PhantomJS
01 03 2016 20:37:46.340:INFO [PhantomJS 2.1.1 (Linux 0.0.0)]: Connected on socket /#jk37rgg1cpRnKrSRAAAA with id 34111882
PhantomJS 2.1.1 (Linux 0.0.0) WARN: 'DEPRECATION WARNING: 'enqueueTask' is no longer supported and will be removed in next major release. Use addTask/addRepeatingTask/addMicroTask'
01 03 2016 20:37:46.667:WARN [web-server]: 404: /base/ionic-angular.js
01 03 2016 20:37:46.717:WARN [web-server]: 404: /base/ionic-angular.js
PhantomJS 2.1.1 (Linux 0.0.0) ERROR: 'http://localhost:9876/base/node_modules/systemjs/dist/system.src.js?281591da6090abed69cd0b080aa69c8de089a41c:733:14
run@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:1217:29
zoneBoundFn@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:1194:29
lib$es6$promise$$internal$$tryCatch@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:442:25
lib$es6$promise$$internal$$invokeCallback@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:454:53
lib$es6$promise$$internal$$publish@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:425:53
lib$es6$promise$$internal$$publishRejection@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:375:42
http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:97:12
run@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:1217:29
zoneBoundFn@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:1194:29
lib$es6$promise$asap$$flush@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:236:18'

Finished in 0.142 secs / 0 sec

I tried to configure these paths, but failed to reference it. :-/

01 03 2016 20:37:46.667:WARN [web-server]: 404: /base/ionic-angular.js
01 03 2016 20:37:46.717:WARN [web-server]: 404: /base/ionic-angular.js

Build location for custom images

I think images should go in resources/images as the resources folder comes from Ionic. If the user has images in a different folder it'll be easy enough for them to change / add the location based on this as an example.

After that we just need to add it to Karma.

So:

  • add some image and include it on a clicker page
  • test said page
  • should get a 404 from Karma
  • add images to karma

Unit test @Pages

Similar to the component tests, we should be testing @Pages properly using DI so we can inspect the DOM during the tests.

config.ts

Hi, I think config.ts should go to "test/" folder since it is only related to testing and ionic has a config.xml, keeping both in the same directory may be confusing.

buildLocker issue

Hi, I migrated to the new test configs and got this

 npm test

> Biva@ test /home/julio/git/platypus
> gulp --gulpfile test/gulpfile.ts --cwd ./ test

[18:20:21] Requiring external module ts-node/register
[18:20:24] Using gulpfile ~/git/platypus/test/gulpfile.ts
[18:20:24] Starting 'test'...
[18:20:24] Starting 'test.clean'...
[18:20:24] Deleted /home/julio/git/platypus/www/build/css, /home/julio/git/platypus/www/build/fonts, /home/julio/git/platypus/www/build/pages
[18:20:24] Finished 'test.clean' after 19 ms
[18:20:24] Starting 'test.build'...
[18:20:24] Starting 'test.lint'...
[18:20:24] Starting 'test.srcCount'...
[18:20:25] Finished 'test.srcCount' after 1.44 s
[18:20:26] Finished 'test.lint' after 1.83 s
[18:20:26] Starting 'test.build.html'...

โˆ† Copying HTML
โˆš Matching patterns: app/**/*.html
[18:20:26] Finished 'test.build.html' after 9.81 ms
[18:20:26] Starting 'test.build.fonts'...

โˆ† Copying fonts
โˆš Matching patterns: node_modules/ionic-angular/fonts/**/*.+(ttf|woff|woff2)
[18:20:26] Finished 'test.build.fonts' after 1.47 ms
[18:20:26] Starting 'test.build.sass'...

โˆ† Compiling Sass to CSS
โˆš Matching patterns: app/theme/app.+(ios|md|wp).scss
[18:20:26] Finished 'test.build.sass' after 3.55 ms
[18:20:26] Starting 'test.build.locker'...
[18:20:26] buildLocker: 0/13 fonts
[18:20:26] buildLocker: 0/3 sass
โˆš HTML copied to www/build
โˆš Fonts copied to www/build/fonts
[18:20:26] buildLocker: 22/11 html
[18:20:26] buildLocker: 0/3 sass
[18:20:26] buildLocker: 22/11 html
[18:20:26] buildLocker: 1/3 sass
โˆš Sass compilation complete
[18:20:27] buildLocker: 22/11 html
[18:20:27] buildLocker: 2/3 sass
[18:20:27] buildLocker: 22/11 html
[18:20:27] buildLocker: 22/11 html
[18:20:27] buildLocker: 22/11 html
[18:20:27] buildLocker: 22/11 html
[18:20:27] buildLocker: 22/11 html
[18:20:27] buildLocker: 22/11 html
[18:20:27] buildLocker: 22/11 html
[18:20:28] buildLocker: 22/11 html
[18:20:28] buildLocker: 22/11 html
[18:20:28] buildLocker: 22/11 html
[18:20:28] buildLocker: 22/11 html

and stays like this forever...
Any idea?

How to run one test file

What's up doc? Do you see a way to execute only one test file? I mean, many times I am writing my tests and want to see if one specific test will fail or not and the whole process of build project and run all tests can take some time.

Map Page

Implement a page showing where clickers got clicked.

ionic-app-lib throws exception on test run

I think removing the ionic-app-lib from the package.json made the tests fail when trying to access that lib. I only saw this when I dropped my npm folder and ran npm install fresh. The old folder was supporting the global working. I verified this with a fresh clone as well.

I can do a PR to put the lib back in packages, but didn't know if you knew of an alternate fix.

Better stacktrace

I am using your code to implement the unit test in my project, but I have errors when running Karma and the stacktrace makes it impossible to debug what is actually going wrong. Example:

FAILED TESTS:
  MyApp
    โœ– initialises with one possible page
      PhantomJS 2.0.0 (Mac OS X 0.0.0)
    TypeError: undefined is not an object (evaluating 'provider.toString') (line 180)
        at 
        at 
        at forEach ([native code])
        at 
        at 
        at 
        at 
        at 
        at /Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/test/karma/tests.config.js:41:18
        at run (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:1217:29)
        at zoneBoundFn (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:1194:29)
        at lib$es6$promise$$internal$$tryCatch (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:442:25)
        at lib$es6$promise$$internal$$invokeCallback (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:454:53)
        at lib$es6$promise$$internal$$publish (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:425:53)
        at /Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:97:12
        at run (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:1217:29)
        at zoneBoundFn (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:1194:29)
        at lib$es6$promise$asap$$flush (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:236:18)
    TypeError: null is not an object (evaluating 'myApp.pages') (line 37)
        at 
        at /Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/test/karma/tests.config.js:41:18
        at run (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:1217:29)
        at zoneBoundFn (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:1194:29)
        at lib$es6$promise$$internal$$tryCatch (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:442:25)
        at lib$es6$promise$$internal$$invokeCallback (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:454:53)
        at lib$es6$promise$$internal$$publish (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:425:53)
        at /Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:97:12
        at run (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:1217:29)
        at zoneBoundFn (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:1194:29)
        at lib$es6$promise$asap$$flush (/Users/groyer/Documents/workspace/helperchoice/helpizr-app-v2/node_modules/zone.js/dist/zone-microtask.js:236:18)

Is there any way to know in which file this line 180 is located? or have the complete stacktrace with no empty lines? thanks

move dev dependencies to dev

  "dependencies": {
    "angular2": "2.0.0-beta.3",
    "codecov.io": "^0.1.6",
    "es6-promise": "^3.0.2",
    "es6-shim": "0.33.13",
    "ionic-framework": "2.0.0-beta.0",
    "ionicons": "3.0.0-alpha.3",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.0",
    "tsd": "^0.6.5",
    "zone.js": "0.5.11"
  },

Release to App Store(s) with Travis

Not sure if this is even possible atm, but without it CI / CD is a little moot.

  1. Release to play store to understand the process
  2. Try to incorporate that in to Travis
  3. Repeat for app store
  4. Try to incorporate that in to Travis
  5. Set up build matrix in Travis to do both app store and play store

exclude test folder from webpack compilation

If you decompile the current generated apk, the test folder is being included in the build and shipped with the apk.
I tried to add
exclude: [ /\.(e2e|spec)\.ts$/, /node_modules/, /test/ ]
to webpack.config.js, while it seems to be something right, it is not enough to avoid the packing of the www/build/test folder generated when the tests are executed. If it is too hard to make webpack ignore the folder, can we delete the www/build/test after the tests are executed?

404: /base/ionic-framework/ionic.js

Hi, I did all like in your blog, but i have this issue:

28 02 2016 01:24:52.746:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket /#hTYdX_L5MLED92lqAAAA with id 16672709
PhantomJS 2.1.1 (Mac OS X 0.0.0) WARN: 'DEPRECATION WARNING: 'enqueueTask' is no longer supported and will be removed in next major release. Use addTask/addRepeatingTask/addMicroTask'
28 02 2016 01:24:53.764:WARN [web-server]: 404: /base/ionic-framework/ionic.js
PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR: 'http://localhost:9876/base/node_modules/systemjs/dist/system.src.js?281591da6090abed69cd0b080aa69c8de089a41c:733:14
run@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:1217:29
zoneBoundFn@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:1194:29
lib$es6$promise$$internal$$tryCatch@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:442:25
lib$es6$promise$$internal$$invokeCallback@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:454:53
lib$es6$promise$$internal$$publish@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:425:53
lib$es6$promise$$internal$$publishRejection@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:375:42
http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:97:12
run@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:1217:29
zoneBoundFn@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:1194:29
lib$es6$promise$asap$$flush@http://localhost:9876/base/node_modules/zone.js/dist/zone-microtask.js?87bbeaae4d01ebf513e1bbea41a0e13dbad92eb4:236:18'
28 02 2016 01:24:53.771:WARN [web-server]: 404: /base/ionic-framework/ionic.js
Finished in 0.002 secs / 0 secs

compilation errors

I updated to the latest master version and ran npm install && ionic build android...
Are the errors below related to issue #9 ? If I remove jamine entry from typings.json the jasmine errors
lines disappear while trying to run the app, however jasmine is needed when running the tests rm typings -rf && npm install && npm test.
I tried to apply this but it seems not solve the problem.
Are you able to reproduce this logs?

[1m[31mERROR in [default] /home/bunny/git/clicker/node_modules/angular2/src/facade/promise.d.ts:1:9 
Cannot re-export name that is not defined in the module.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/node_modules/ionic-framework/animations/animation.d.ts:48:50 
A 'this' type is available only in a non-static member of a class or interface.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/node_modules/ionic-framework/animations/animation.d.ts:54:50 
A 'this' type is available only in a non-static member of a class or interface.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:8:13 
Duplicate identifier 'PropertyKey'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:11:4 
Duplicate identifier 'done'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:12:4 
Duplicate identifier 'value'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:250:4 
Duplicate identifier 'EPSILON'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:285:4 
Duplicate identifier 'MAX_SAFE_INTEGER'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:292:4 
Duplicate identifier 'MIN_SAFE_INTEGER'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:348:4 
Duplicate identifier 'flags'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:500:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:563:4 
Duplicate identifier 'size'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:572:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:583:4 
Duplicate identifier 'size'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:592:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:607:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/es6-shim/es6-shim.d.ts:621:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:74:8 
Duplicate identifier 'length'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:133:8 
Duplicate identifier 'pass'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:134:8 
Duplicate identifier 'message'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:144:8 
Duplicate identifier 'setTimeout'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:145:8 
Duplicate identifier 'clearTimeout'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:146:8 
Duplicate identifier 'setInterval'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:147:8 
Duplicate identifier 'clearInterval'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:148:8 
Duplicate identifier 'updateInterval'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:150:8 
Duplicate identifier 'currentSpec'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:152:8 
Duplicate identifier 'matchersClass'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:198:8 
Duplicate identifier 'type'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:202:8 
Duplicate identifier 'description'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:204:8 
Duplicate identifier 'totalCount'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:205:8 
Duplicate identifier 'passedCount'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:206:8 
Duplicate identifier 'failedCount'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:208:8 
Duplicate identifier 'skipped'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:218:8 
Duplicate identifier 'values'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:219:8 
Duplicate identifier 'trace'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:223:8 
Duplicate identifier 'matcherName'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:225:8 
Duplicate identifier 'expected'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:226:8 
Duplicate identifier 'actual'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:227:8 
Duplicate identifier 'message'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:228:8 
Duplicate identifier 'trace'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:232:8 
Duplicate identifier 'name'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:233:8 
Duplicate identifier 'message'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:234:8 
Duplicate identifier 'stack'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:257:8 
Duplicate identifier 'env'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:258:8 
Duplicate identifier 'ensured'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:259:8 
Duplicate identifier 'blocks'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:260:8 
Duplicate identifier 'running'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:261:8 
Duplicate identifier 'index'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:262:8 
Duplicate identifier 'offset'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:263:8 
Duplicate identifier 'abort'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:278:8 
Duplicate identifier 'env'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:279:8 
Duplicate identifier 'actual'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:280:8 
Duplicate identifier 'spec'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:281:8 
Duplicate identifier 'isNot'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:303:8 
Duplicate identifier 'not'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:305:8 
Duplicate identifier 'Any'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:344:8 
Duplicate identifier 'id'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:345:8 
Duplicate identifier 'env'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:346:8 
Duplicate identifier 'description'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:347:8 
Duplicate identifier 'queue'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:354:8 
Duplicate identifier 'suite'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:356:8 
Duplicate identifier 'afterCallbacks'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:357:8 
Duplicate identifier 'spies_'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:359:8 
Duplicate identifier 'results_'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:360:8 
Duplicate identifier 'matchersClass'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:385:8 
Duplicate identifier 'id'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:393:8 
Duplicate identifier 'parentSuite'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:416:8 
Duplicate identifier 'identity'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:417:8 
Duplicate identifier 'and'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:418:8 
Duplicate identifier 'calls'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:419:8 
Duplicate identifier 'mostRecentCall'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:420:8 
Duplicate identifier 'argsForCall'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:421:8 
Duplicate identifier 'wasCalled'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:458:8 
Duplicate identifier 'object'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:460:8 
Duplicate identifier 'args'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:473:8 
Duplicate identifier 'started'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:474:8 
Duplicate identifier 'finished'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:475:8 
Duplicate identifier 'result'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:476:8 
Duplicate identifier 'messages'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:490:8 
Duplicate identifier 'Spec'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:491:8 
Duplicate identifier 'clock'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/browser/ambient/jasmine/jasmine.d.ts:492:8 
Duplicate identifier 'util'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:8:13 
Duplicate identifier 'PropertyKey'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:11:4 
Duplicate identifier 'done'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:12:4 
Duplicate identifier 'value'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:250:4 
Duplicate identifier 'EPSILON'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:285:4 
Duplicate identifier 'MAX_SAFE_INTEGER'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:292:4 
Duplicate identifier 'MIN_SAFE_INTEGER'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:348:4 
Duplicate identifier 'flags'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:500:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:563:4 
Duplicate identifier 'size'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:572:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:583:4 
Duplicate identifier 'size'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:592:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:607:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/es6-shim/es6-shim.d.ts:621:4 
Duplicate identifier 'prototype'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:74:8 
Duplicate identifier 'length'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:75:8 
Duplicate number index signature.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:129:8 
Duplicate string index signature.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:133:8 
Duplicate identifier 'pass'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:134:8 
Duplicate identifier 'message'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:144:8 
Duplicate identifier 'setTimeout'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:145:8 
Duplicate identifier 'clearTimeout'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:146:8 
Duplicate identifier 'setInterval'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:147:8 
Duplicate identifier 'clearInterval'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:148:8 
Duplicate identifier 'updateInterval'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:150:8 
Duplicate identifier 'currentSpec'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:152:8 
Duplicate identifier 'matchersClass'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:198:8 
Duplicate identifier 'type'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:202:8 
Duplicate identifier 'description'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:204:8 
Duplicate identifier 'totalCount'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:205:8 
Duplicate identifier 'passedCount'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:206:8 
Duplicate identifier 'failedCount'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:208:8 
Duplicate identifier 'skipped'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:218:8 
Duplicate identifier 'values'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:219:8 
Duplicate identifier 'trace'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:223:8 
Duplicate identifier 'matcherName'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:225:8 
Duplicate identifier 'expected'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:226:8 
Duplicate identifier 'actual'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:227:8 
Duplicate identifier 'message'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:228:8 
Duplicate identifier 'trace'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:232:8 
Duplicate identifier 'name'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:233:8 
Duplicate identifier 'message'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:234:8 
Duplicate identifier 'stack'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:257:8 
Duplicate identifier 'env'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:258:8 
Duplicate identifier 'ensured'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:259:8 
Duplicate identifier 'blocks'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:260:8 
Duplicate identifier 'running'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:261:8 
Duplicate identifier 'index'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:262:8 
Duplicate identifier 'offset'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:263:8 
Duplicate identifier 'abort'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:278:8 
Duplicate identifier 'env'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:279:8 
Duplicate identifier 'actual'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:280:8 
Duplicate identifier 'spec'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:281:8 
Duplicate identifier 'isNot'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:303:8 
Duplicate identifier 'not'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:305:8 
Duplicate identifier 'Any'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:344:8 
Duplicate identifier 'id'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:345:8 
Duplicate identifier 'env'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:346:8 
Duplicate identifier 'description'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:347:8 
Duplicate identifier 'queue'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:354:8 
Duplicate identifier 'suite'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:356:8 
Duplicate identifier 'afterCallbacks'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:357:8 
Duplicate identifier 'spies_'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:359:8 
Duplicate identifier 'results_'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:360:8 
Duplicate identifier 'matchersClass'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:385:8 
Duplicate identifier 'id'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:393:8 
Duplicate identifier 'parentSuite'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:416:8 
Duplicate identifier 'identity'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:417:8 
Duplicate identifier 'and'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:418:8 
Duplicate identifier 'calls'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:419:8 
Duplicate identifier 'mostRecentCall'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:420:8 
Duplicate identifier 'argsForCall'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:421:8 
Duplicate identifier 'wasCalled'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:458:8 
Duplicate identifier 'object'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:460:8 
Duplicate identifier 'args'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:473:8 
Duplicate identifier 'started'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:474:8 
Duplicate identifier 'finished'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:475:8 
Duplicate identifier 'result'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:476:8 
Duplicate identifier 'messages'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:490:8 
Duplicate identifier 'Spec'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:491:8 
Duplicate identifier 'clock'.[39m[22m

[1m[31mERROR in [default] /home/bunny/git/clicker/typings/main/ambient/jasmine/jasmine.d.ts:492:8 
Duplicate identifier 'util'.[39m[22m

โˆš Webpack complete

e2e tests mocking classes

Hello there, is it possible to run the e2e tests while mocking things like http requests? Suppose you want to test the login flow, but not hit the network, would it be possible?

gitter?

Hey lathonez, what do you think of opening a gitter for this repo? It would be better to exchange ideas.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.