GithubHelp home page GithubHelp 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 Introduction

Ionic 2 Demo / Seed Project : + i18n + Unit Testing + E2E Testing + CI + CD

CircleCI Build status codecov.io Code Climate MIT license Dependency Status devDependency Status

Click here for the live demo

Ionic's official repo

Ionic have created an official unit testing example over at driftyco/ionic-unit-testing-example. To understand why this repo still exists, see #239, where we looked at deprecating clicker in favour of ionic-unit-testing-example.

Broadly, the official example repo:

  • Is not mature or production ready
  • Is intended as a simple example only / will not be supported by Ionic
  • Does not support e2e
  • Does not use @angular/cli and thus lacks testing support from the wider ng2 community

For ~large or production projects, I suggest using clicker. For small apps / side projects the official example should suffice.

Install & Start

You need to be running the latest node LTS or newer

git clone https://github.com/lathonez/clicker.git
cd clicker
npm install
npm start         # start the application (ionic serve)

Running as root? You probably shouldn't be. If you need to: npm run postinstall before npm start. #111 for more info.

Run Unit Tests

npm test          # run unit tests

Run E2E

npm run webdriver
npm run e2e

Blog Topics

Contribute

PRs are welcome, see the roadmap sticky

Help

  • If you can't get the testing working, raise an issue
  • If you have a general question about unit testing (e.g. how can I write a unit test for some-module), see #191

Acks

  • This started out as a fork of Angular 2 Seed and would not be possible without it
  • @stonelasey for i18n (#271)
  • @bengro for the lightweightify inspiration (#68)
  • @ric9176 and @DanielaGSB for E2E tests (#50)
  • @tja4472 for the ngrx implementation (#133)
  • Everyone else for the advice, help, PRs etc

Changelog

See the changelog here

Updated for:

  • @angular/*: 5.0.4
  • @angular/cli:: 1.5.4
  • @ionic-angular: 3.9.2

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

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.

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

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% :)

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?

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

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?

Roadmap

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.

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.

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?

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?

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

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

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

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.

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.

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

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.

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

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!

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

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

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
...

gitter?

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

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?

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)

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.

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

Map Page

Implement a page showing where clickers got clicked.

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.

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"
  },

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..

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.