-
Refactor glob_to_re into a robust implementation
-
Add
--opal-opt
CLI option -
Add
--rbrequire
CLI option
-
Drop advertised support for Opal v1.6
-
Fix support for Ruby 2.7+
-
Drop requirement of Opal-Sprockets
-
Support Opal headless browser runners
-
(Almost) full support for
rspec
CLI util (which we run usingopal-rspec
command)- Focus works, you can type
opal-rspec spec-opal-passing/tautology_spec.rb:8
to select a given test - Most of other command line switches of
opal-rspec
work - You can use a
.rspec-opal
configuration file akin to.rspec
with the regular RSpec- Just like with RSpec, switches set in this file propagate everywhere (eg. Rake task), so this is from now a prefered place to set up paths, etc.
- Focus works, you can type
-
Compatibility for upcoming Opal v1.8
-
Drop support for anything below Opal v1.6.alpha1
-
Update to the latest RSpec versions
-
Vendor-in
diff-lcs
-
Rework the async logic to use the
await
feature of Opal- If you use async features, it's crucial to use a
# await: *await*
magic comment (this will cause any call to a method containing anawait
word to be compiled with anawait
ES8 keyword) - Both
let
andsubject
that return a promise (ie. are async) must be referenced with an.await
method - In
around
blocks, you must callexample.run_await
instead of justexample.run
- Only
PromiseV2
is supported (PromiseV1
may work, but you should migrate your application to usePromiseV2
nevertheless, in Opal 2.0 it will become the default)
- If you use async features, it's crucial to use a
-
Drop a requirement of
opal-sprockets
- Sprockets support is still provided, but you need to manually
require "opal/rspec/sprockets"
- Sprockets support is still provided, but you need to manually
-
Support for Opal v1.x
-
Fix some x-srting semicolon warnings
-
Fix forwarding the exit code to the rake task
- add a project initializer:
opal-rspec --init
-
Drop support for the legacy async syntax
-
Complete internal overhaul
-
Support for Opal v0.11
-
Fixed compatibility with Rake 12
-
Open up to opal 0.11 (not officially supported yet)
-
Support for Opal 0.8/0.9 removed
-
Opal 0.10 support
-
Arity checking enabled by default
-
Dropped support for PhantomJS < 2.0
-
Removed
Kernel#caller
monkey patch so test file/line metadata is only available if supplied via test metadata or for failures. Should improve performance since an exception isn't thrown for every test to gather the data
-
By default, any subject, it example block, before(:each), after(:each), and around that returns a promise will be executed asynchronously. Async is NOT yet supported for context level hooks. Async approach from < 0.4.3 will still work.
-
Update to RSpec 3.1 (core is 3.1.7, expectations/support 3.1.2, mocks 3.1.3)
-
Opal 0.9 compatibility
-
A lot more aspects of RSpec should work now as 20+ Opal pull requests were completed from opal-rspec work
-
Remove copy of source from opal-rspec git repo (and just rely on git submodule fetch)
-
Rake task improvements:
- supports passing a test pattern (include and exclude) and FileLists besides 'spec/**/*_spec.rb
- colors, formatter, and additional requires can be supplied from the command line via the SPEC_OPTS environment variable
-
Formatters:
- Fixed issues with RSpec's BaseTextFormatter and made ProgressFormatter the default when run via the Rake task
- Fix redundant messages with expectation fails
- Browser formatter now works w/ progress bar and has a 'Dump to console' link that will put a clickable stack trace for a failed example in the browser console
- JSON formatter supported
-
Fixed issues with constants/example group naming
-
Basic nodejs runner support
-
A lot more matchers enabled
- PhantomJS 2.0 compatibility (also still compatible with 1.9.8). Thanks to @aost. Closes out #42
- Allow the gem to be run under Opal 0.7 and 0.8
- Fix some threading issues
- Avoid some other calls to mutable-strings methods
- Avoid phantomjs warning messages
-
Remove predicate matcher fixes as Opal supports $1..$9 special gvars.
-
Update Opal dependency for ~> 0.6.0.
-
Remove double-escaping in inline x-strings (from Opal bug fix).
-
Remove opal-sprockets dependency - build tools now part of opal.
-
Replaced browser formatter to use html printer from rspec
-
Add timeout support to asynchronous specs