* Make "npm test" run Karma tests
Result is this:
```
$ npm test
> docker-registry-frontend@0.0.2 pretest /Users/marca/dev/git-repos/docker-registry-frontend_2
> npm install
> docker-registry-frontend@0.0.2 postinstall /Users/marca/dev/git-repos/docker-registry-frontend_2
> bower install
> docker-registry-frontend@0.0.2 test /Users/marca/dev/git-repos/docker-registry-frontend_2
> karma start test/karma.conf.js
09 07 2016 13:36:20.771:WARN [karma]: No captured browser, open http://localhost:8080/
09 07 2016 13:36:20.781:INFO [karma]: Karma v1.1.1 server started at http://localhost:8080/
09 07 2016 13:36:20.782:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
09 07 2016 13:36:20.788:INFO [launcher]: Starting browser PhantomJS
09 07 2016 13:36:21.250:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket /#Z4MF21dfMgThOi3zAAAA with id 9538616
PhantomJS 2.1.1 (Mac OS X 0.0.0) Controller: MainCtrl should attach a list of awesomeThings to the scope FAILED
forEach@bower_components/angular/angular.js:326:24
loadModules@bower_components/angular/angular.js:4115:12
createInjector@bower_components/angular/angular.js:4041:22
workFn@bower_components/angular-mocks/angular-mocks.js:2464:60
loaded@http://localhost:8080/context.js:151:17
bower_components/angular/angular.js:4155:53
TypeError: undefined is not an object (evaluating 'scope.awesomeThings') in test/spec/controllers/main.js (line 20)
test/spec/controllers/main.js:20:17
loaded@http://localhost:8080/context.js:151:17
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 (1 FAILED) ERROR (0.005 secs / 0.006 secs)
```
Fixes#139
* Make MainController tests work
This makes the `MainController` tests pass.
```
$ npm test
> docker-registry-frontend@0.0.2 pretest /Users/marca/dev/git-repos/docker-registry-frontend_2
> npm install
> docker-registry-frontend@0.0.2 postinstall /Users/marca/dev/git-repos/docker-registry-frontend_2
> bower install
> docker-registry-frontend@0.0.2 test /Users/marca/dev/git-repos/docker-registry-frontend_2
> karma start test/karma.conf.js
09 07 2016 17:06:59.974:WARN [karma]: No captured browser, open http://localhost:8080/
09 07 2016 17:06:59.986:INFO [karma]: Karma v1.1.1 server started at http://localhost:8080/
09 07 2016 17:06:59.986:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
09 07 2016 17:07:00.133:INFO [launcher]: Starting browser PhantomJS
09 07 2016 17:07:01.051:INFO [PhantomJS 2.1.1 (Mac OS X 0.0.0)]: Connected on socket /#6enEIdsugSVdKVioAAAA with id 62465837
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 1 of 1 SUCCESS (0.004 secs / 0.024 secs)
```
* test/karma.conf.js: Add more files
E.g.:
- angular-bootstrap,
- angular-bootstrap-checkbox
- angular-filter
- angular-loading-bar
- angular-moment
- angular-smart-table
I also alphabetized the list to make it easier to check if something is
already included.
* test/karma.conf.js: Add 'dots' reporter
* Add app/app.spec.js
`app/app.spec.js` contains tests for various routes, which should be
very useful for finding and fixing routing bugs.
See:
- #97
- #100
- #104
- #121
* Enable junit and spec Karma reporters
* app/app.spec.js: Check scope attributes
* app/app.spec.js: Check scope.appMode
* test/spec/controllers/main.js: Check appVersion & registryHost
* MainController: use registry-services
In `MainController`, depend on the `registry-services` module instead of
the `registry-host-services` module.
* Remove app/services/registry-host-services.js
Remove `app/services/registry-host-services.js` because it seems to be
an older, unused version of `app/services/registry-services.js`
* repository-list-controller: Add dependencies
Specify that the `repository-list-controller` module depends on
`ngRoute` and `ui.bootstrap` modules.
Otherwise controller tests of this module fail.
* $scope.repositories = data;
In `repository-list-controller`, do:
$scope.repositories = data;
in the promise callback. Otherwise, the new tests in
`app/repository/repository-list-controller.spec.js` fail.
This is because promises get resolved in templates but not in until
tests -- see
http://stackoverflow.com/questions/15048132/angularjs-promise-not-being-resolved-in-unit-test
* Add unit test for RepositoryListController
in `app/repository/repository-list-controller.spec.js`.
RepositoryListController
✓ should attach some keys to the scope
* Gruntfile.js: Use DOCKER_REGISTRY_{HOST,PORT}
Use `DOCKER_REGISTRY_HOST` and `DOCKER_REGISTRY_PORT` environment
variables so that one can specify a custom Docker registry server while
developing, without hacking `Gruntfile.js`.
Now all files dealing with repositories reside in app/repository and all
dealing with tag reside in app/tag. That's far more easy to maintain
than having tag files spread across multiple folders.
2015-08-31 15:32:38 +02:00
Renamed from app/scripts/controllers/main-controller.js (Browse further)