Skip to content

Latest commit

 

History

History
263 lines (169 loc) · 8.4 KB

CHANGELOG.md

File metadata and controls

263 lines (169 loc) · 8.4 KB

Unreleased

1.3.0

  • Officially drops support for Ruby 2.4 and Rails earlier than 4.2.11

1.2.2

  • make sure all tests pass with rails 4.2 - 6.1 (few pending excluded PR welcome)
  • ruby supported 2.5 to 2.7 works, unknown about 3.0
  • remove monkey-patch on javascript_include_tag

1.2.1

  • require utility in console to get Teaspoon.root (#562)
  • Update ruby version requirement to allow ruby 3.0 (#583)
  • Fix coverage output path (#579)
  • Delay using Rails until loaded (#582)
  • Run tests via Github Actions (#588)

1.2.0

Enhancements

  • Add Rails 6 (beta1) support (#556)
  • Allow passing selenium options (#537)

Bug Fixes

  • Removes Rails 3 & 4 support (#560)
  • Removes support for capybara webkit (#560)
  • Fixes gem coffeescript assets being discovered by sprockets (#405)
  • Many other small changes/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:

    gem 'teaspoon-jasmine'

    For Mocha:

    gem 'teaspoon-mocha'

    For QUnit:

    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:

    suite.no_coverage += /my_file.js/

    You should move this into the coverage block:

    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:

    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.

    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.

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.

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.