### Unreleased
#### Bug Fixes
### 1.1.5
#### Enhancements
* Adds support for Rails 5
#### Bug Fixes
* Fixes an ActionView version related issue.
* Changes before_filter to before_action where possible (Rails 3 vs. Rails 5)
### 1.1.4
#### Bug Fixes
* Fixes an ActionView version related issue.
### 1.1.3
This was an erroneous release, of the rails_5 branch. oops.
#### Bug Fixes
* Fix for version check of ActionView, to expand the version checking for security/bug fix releases.
### 1.1.2
#### Bug Fixes
* Fix for sprockets_rails 3.0.0 change to precompile rules
### 1.1.1
#### Bug Fixes
* Fix teaspoon cli environment checking
### 1.1.0
#### Enhancements
* Support invalid HTML in fixtures (#387)
* Configurable JavaScript extensions via suite.js_extensions (#418)
* Fail build when Phantomjs fails (b34c4)
* Add new versions of test frameworks to the latest minor versions
#### Bug Fixes
* Retain file filter when navigating to specs (#327)
* Provide details when Istanbul fails (#368)
* Fix support for barebones Rails app (#372)
* Fix pending count and nested styles (#373)
* Fix total count in Jasmine 2 (#378)
* Deprecate and fix suite.use_framework= (#394)
* Fix capybara-webkit synchronization (#403)
* Fix reporting in IE8 (97cf6)
* Fix Jasmine's "fit" (f5e2a)
### 1.0.2 (5/5/15)
#### Bug Fixes
* Use a more robust phantomjs polyfill (#360)
* Revive support for 1.9.3 (#361)
### 1.0.1 (5/5/15)
#### Bug Fixes
* Fix constant scoping for Phantomjs (#359)
### 1.0.0 (5/4/15)
#### Upgrade Steps
- **Update your Gemfile**
Change your Gemfile to use `teaspoon-jasmine` instead of `teaspoon`, if you're using Jasmine. If you're using Mocha, this would be `teaspoon-mocha`. Use `teaspoon-qunit` for QUnit.
eg: For Jasmine:
```ruby
gem 'teaspoon-jasmine'
```
For Mocha:
```ruby
gem 'teaspoon-mocha'
```
For QUnit:
```ruby
gem 'teaspoon-qunit'
```
If you had Teaspoon locked at a specific version, kill the version. You'll now need to reference the version of the framework, instead of the version of Teaspoon.
eg: If your Gemfile has `gem 'teaspoon', '0.9.1'` and you're using Mocha, you'll want your Gemfile to reference the latest version of Mocha: `gem 'teaspoon-mocha', '2.2.4'`. The teaspoon-mocha gem contains previous versions of Mocha, so even if you're not using version 2.2.4 of Mocha in your `teaspoon_env.rb`, still reference the latest version in your Gemfile and the older version should still work.
- **Configuration: Update your coverage**
In `teaspoon_env.rb`, if you use Teaspoon to generate coverage reports with Istanbul, and you use the `suite.no_coverage` to exclude files from coverage, you'll need to migrate that configuration into the `config.coverage` blocks. So if you have:
```ruby
suite.no_coverage += /my_file.js/
```
You should move this into the `coverage` block:
```ruby
config.coverage do |coverage|
coverage.ignore += /my_file.js/
end
```
This means that you can no longer exclude things at the suite level. If you had multiple suites with different `no_coverage` configurations, you'll now need to create multiple coverage blocks and specify the coverage you want when using the CLI.
eg: teaspoon --coverage=[coverage_name]
- **Configuration: Prefer suite.use_framework over suite.javascripts**
Teaspoon now has better support for framework versions. In `teaspoon_env.rb`, if you are using `suite.javascripts` to include the testing framework, you should use `suite.use_framework` with a version number instead.
If your `teaspoon_env.rb` has `suite.javascripts` configured:
```ruby
suite.javascripts = ["jasmine/1.3.1", "teaspoon-jasmine", "your-custom-file.js"]
```
This will break since `teaspoon-jasmine` no longer exists. Update this config to exclude any framework or Teaspoon files. Be sure to use `+=` as Teaspoon will be modifying this array to append framework and Teaspoon files.
```ruby
suite.javascripts += ["your-custom-file.js"]
```
#### Enhancements
* Break frameworks out into individual gems (eg teaspoon-mocha)
* Frameworks (eg mocha, jasmine) can now be registered with core
* Formatters (eg dot, documentation) can now be registered with core
* Drivers (eg phantomjs, selenium) can now be registered with core
* Support for Jasmine 2.0
* Support for Mocha 2.0
* Improved abstractions around how framework events are handled (via responders)
* Can now specify framework version when installing
* Adds `rake teaspoon:info` to show Teaspoon and framework versions
* Backfill support for old versions of frameworks
* Fail faster when teaspoon_env.rb cannot be found
* Lots of refactors to clean things up
#### Bug Fixes
* Fix files excluded from coverage for RequireJS (@davestevens)
* Fix double teaspoon hook (#332)
* Instrument files when config.expand_assets is false (#357)
### 0.9.1 (3/2/15)
* Fixes an issue where suite view was failing
* CI/Linux stability improvement (alphanumeric ordering of spec files)
### 0.9.0 (2/24/15)
#### Enhancements
* Add `expand_assets` suite configuration to control spec compilation
* Provide QUnit tests with a default `equal` message
* Support cli reusing running Rails server
* Add support for Capybara Webkit
* Better support for RequireJS
* Add RSpec HTML formatter
#### Bug Fixes
* Fix qunit 1.14.0 precompile path
#### Removals
* Direct support for Angular
### 0.8.0 (4/18/14)
Configuration has changed considerably, and deprecation warnings have been provided. In general it's probably best to remove your /initializers/teaspoon.rb and reinstall using the generator. Configuration is now consolidated into spec/teaspoon_env.rb. **This can cause a stack level too deep exception unless the teaspoon_env.rb file properly wraps the loading of rails in a `defined?(Rails)` check.**
#### Upgrade Steps
1. backup your `spec/teaspoon_env.rb` file.
2. run the install generator to get the new `teaspoon_env.rb`.
3. migrate your old settings into the new file, noting the changes that might exist.
4. move all settings that you had in `config/initializers/teaspoon.rb` into `spec/teaspoon_env.rb` and delete the initializer.
#### Coverage reports
Coverage has changed in terms of configuration, to allow for different coverage configurations, and they behave a lot like suite configurations now. You can have any number of coverage configurations and can specify which coverage configuration to use from the command line.
```ruby
config.coverage do |coverage|
coverage.reports = ["text"]
end
config.coverage :CI do |coverage|
coverage.reports = ["cobertura", "lcov"]
end
config.use_coverage = :CI
```
#### Frameworks
The configuration around which test framework is used for a suite has been changed and improved. Instead of configuring via the `javascripts` directive we're transitioning to a more complete structure with `use_framework`.
You can specify version of test framework with `use_framework` now, which allows for the gem to be updated, while keeping the impact on your specs minimal.
```ruby
suite.use_framework :mocha, "1.10.0"
```
#### Formatters
Running CI with two formatters is easier, as formatters can be sent to file output instead of just $stdout by using > in the formatter name to be used. Just remember to wrap it in a string when you specify it in the CLI -- or all output will be piped to that file.
```
teaspoon --format="dots,junit>/path/to/junit_output.xml"
config.formatters = ["dots", "junit>/path/to/junit_output.xml"]
```
#### Drivers
Drivers have a more feature complete configuration strategy. For PhantomJS you can provide a string of flags (eg. --debug=true), and the selenium driver can accept a hash (or json string) to specify something other than firefox for instance.