diff --git a/doc/development/frontend.md b/doc/development/frontend.md index 474769fb553..ba47998de49 100644 --- a/doc/development/frontend.md +++ b/doc/development/frontend.md @@ -250,23 +250,17 @@ information. ### Running frontend tests -`rake teaspoon` runs the frontend-only (JavaScript) tests. +`rake karma` runs the frontend-only (JavaScript) tests. It consists of two subtasks: -- `rake teaspoon:fixtures` (re-)generates fixtures -- `rake teaspoon:tests` actually executes the tests +- `rake karma:fixtures` (re-)generates fixtures +- `rake karma:tests` actually executes the tests -As long as the fixtures don't change, `rake teaspoon:tests` is sufficient +As long as the fixtures don't change, `rake karma:tests` is sufficient (and saves you some time). -If you need to debug your tests and/or application code while they're -running, navigate to [localhost:3000/teaspoon](http://localhost:3000/teaspoon) -in your browser, open DevTools, and run tests for individual files by clicking -on them. This is also much faster than setting up and running tests from the -command line. - Please note: Not all of the frontend fixtures are generated. Some are still static -files. These will not be touched by `rake teaspoon:fixtures`. +files. These will not be touched by `rake karma:fixtures`. ## Design Patterns @@ -329,7 +323,7 @@ For our currently-supported browsers, see our [requirements][requirements]. ### Spec errors due to use of ES6 features in `.js` files If you see very generic JavaScript errors (e.g. `jQuery is undefined`) being -thrown in Teaspoon, Spinach, or Rspec tests but can't reproduce them manually, +thrown in Karma, Spinach, or Rspec tests but can't reproduce them manually, you may have included `ES6`-style JavaScript in files that don't have the `.js.es6` file extension. Either use ES5-friendly JavaScript or rename the file you're working in (`git mv `). diff --git a/doc/development/rake_tasks.md b/doc/development/rake_tasks.md index 827db7e99b8..dcd978c4cd3 100644 --- a/doc/development/rake_tasks.md +++ b/doc/development/rake_tasks.md @@ -17,14 +17,14 @@ Note: `db:setup` calls `db:seed` but this does nothing. In order to run the test you can use the following commands: - `rake spinach` to run the spinach suite - `rake spec` to run the rspec suite -- `rake teaspoon` to run the teaspoon test suite +- `rake karma` to run the karma test suite - `rake gitlab:test` to run all the tests -Note: Both `rake spinach` and `rake spec` takes significant time to pass. +Note: Both `rake spinach` and `rake spec` takes significant time to pass. Instead of running full test suite locally you can save a lot of time by running -a single test or directory related to your changes. After you submit merge request -CI will run full test suite for you. Green CI status in the merge request means -full test suite is passed. +a single test or directory related to your changes. After you submit merge request +CI will run full test suite for you. Green CI status in the merge request means +full test suite is passed. Note: You can't run `rspec .` since this will try to run all the `_spec.rb` files it can find, also the ones in `/tmp` diff --git a/doc/development/testing.md b/doc/development/testing.md index dbea6b9c9aa..761847b2bab 100644 --- a/doc/development/testing.md +++ b/doc/development/testing.md @@ -31,9 +31,8 @@ GitLab uses [factory_girl] as a test fixture replacement. ## JavaScript -GitLab uses [Teaspoon] to run its [Jasmine] JavaScript specs. They can be run on -the command line via `bundle exec teaspoon`, or via a web browser at -`http://localhost:3000/teaspoon` when the Rails server is running. +GitLab uses [Karma] to run its [Jasmine] JavaScript specs. They can be run on +the command line via `bundle exec karma`. - JavaScript tests live in `spec/javascripts/`, matching the folder structure of `app/assets/javascripts/`: `app/assets/javascripts/behaviors/autosize.js.es6` has a corresponding @@ -51,7 +50,7 @@ the command line via `bundle exec teaspoon`, or via a web browser at [`Notification`](https://developer.mozilla.org/en-US/docs/Web/API/notification), which will have to be stubbed. -[Teaspoon]: https://github.com/modeset/teaspoon +[Karma]: https://github.com/karma-runner/karma [Jasmine]: https://github.com/jasmine/jasmine ## RSpec diff --git a/spec/javascripts/behaviors/quick_submit_spec.js b/spec/javascripts/behaviors/quick_submit_spec.js index b84126c0e3d..1541037888f 100644 --- a/spec/javascripts/behaviors/quick_submit_spec.js +++ b/spec/javascripts/behaviors/quick_submit_spec.js @@ -40,7 +40,7 @@ require('~/behaviors/quick_submit'); expect($('input[type=submit]')).toBeDisabled(); return expect($('button[type=submit]')).toBeDisabled(); }); - // We cannot stub `navigator.userAgent` for CI's `rake teaspoon` task, so we'll + // We cannot stub `navigator.userAgent` for CI's `rake karma` task, so we'll // only run the tests that apply to the current platform if (navigator.userAgent.match(/Macintosh/)) { it('responds to Meta+Enter', function() {