jasminewd2
Advanced tools
Changelog
2.2.0
Update selenium-webdriverjs to 3.5.0.
Changelog
2.0.0
(Skipping 1.x because 0.0.1
was originally accidently published as 1.0.0
.)
(fae803c)
pass webdriver instance into init()
instead of using require()
(#83)
So where as before you would write:
require('jasminewd').init(webdriver.promise.controlFlow());
Now you will write:
require('jasminewd').init(webdriver.promise.controlFlow(), webdriver);
This removes the dependency on selenium-webdriver
and protects jasminewd from having a
different webdriver instance than Protractor, which could be a huge problem if they had different
control flow settings.
This is a breaking change because it changes the API for the init
function.
I also removed the dependency on jasmine, which didn't do anything anyway. Maybe it should have been a peerDependency but those are deprecated.
(171cbde)
Added types (though you'll have to wait for @types/jasminewd2
to use them) (#79)
(27b4850)
Support SELENIUM_PROMISE_MANAGER=0
(#72)
There are three major ways this was done in this change:
callWhenIdle
, if flow.isIdle
is not defined, we assume we are working with a
SimpleScheduler
instance, and so the flow is effectively idle.initJasmineWd
, if flow.reset
is not defined, we assume we are working with a
SimpleScheduler
instance, and so don't bother resetting the flow.wrapInControlFlow
, we use flow.promise
to create a new promise if possible. Since
new webdriver.promise.Promise()
would have always made a ManagedPromise
, but flow.promise
will do the right thing.wrapCompare
, we avoid the webdriver library entirely, and never instance any extra
promises. Using webdriver.promise.when
and webdriver.promise.all
could have been a problem
if our instance of webdriver
had the control flow turned on, but another instance somewhere
did not (or even the same instance, but just at a different point in time). Instead we use the
new maybePromise
tool, which is a mess but is also exactly what we want.specs/*
, we replace webdriver.promise.fulfilled
with webdriver.promise.when
.specs/*
, a new version of adapterSpec.js
and errorSpec.js
are created:
asyncAwaitAdapterSpec.ts
and asyncAwaitErrorSpec.ts
.I also also fixed a minor bug where we weren't correctly checking for promises inside an array of expected results. Before we had:
expected = Array.prototype.slice.call(arguments, 0);
...
webdriver.promise.isPromise(expected);
I thought about it for a little while, and there's no way that's correct. expected
is an
Array<any>
, there's no way it has a .then
function.
Closes https://github.com/angular/jasminewd/issues/69
(369a249)
Don't rely on webdriver.promise
functions (#82)
While we support SELENIUM_PROMISE_MANAGER=0
already, we rely on SimpleScheduler
and some other
utility functions which will be going away after the control flow has been fully deprecated. This
commit allows jasminewd to work without those utility functions, and even allows people to pass
jasminewd their own custom scheduler implementation.
This does not fix our tests, which will also break when those utility functions go away. See https://github.com/angular/jasminewd/issues/81
Closes https://github.com/angular/jasminewd/issues/80
Changelog
0.1.0-beta.1
(5fe36a6) deps(selenium-webdriver): upgrade to 3.0.0 (#63)
fix test "should wait till the expect to run the flow"
isPending
exists but it is no longer part of ManagedPromise
isPending
also is no longer exported in lib/promise.js
wrote an isPending
similar to selenium-webdriver in common.js
require a minimum node version
selenium-webdriver 3.0.0 requires node >= 6.9.0
update travis test to use node 6
Changelog
0.1.0-beta.0
This beta release is for the selenium-webdriver 3.0.0-beta-3 upgrade.
Changelog
0.0.10
(ff2e624) fix(webdriver): Pass in the control flow.
BREAKING CHANGE: The control flow now needs to be passed in when using jasminewd. This fixes
an issue where having multiple versions of selenium-webdriver in a package's dependency tree would
result in jasminewd and protractor using different control flows. You now have to initialize
jasminewd before you can use it, like so: require('jasminewd2').init(webdriver.promise.controlFlow());
See https://github.com/angular/protractor/issues/3505
(db26b1a) fix(stacktrace): do not crash if beforeEach block is rejected without any stated reason (#45)
Changelog
0.0.8
(5abc745) chore(jasmine): update MatchFactory to allow message as function
(750898c) fix(expectation): expectations without promises no longer add to task queue
Instead, expectations without promises in either expected or actual are unchanged from the original Jasmine implementation.
See https://github.com/angular/protractor/issues/2894