Skip to content
This repository has been archived by the owner on Jul 29, 2024. It is now read-only.

build: publish using wombat #5554

Draft
wants to merge 679 commits into
base: hankduan-patch-1
Choose a base branch
from
Draft

build: publish using wombat #5554

wants to merge 679 commits into from

Conversation

lokera666
Copy link

Best practice

sjelin and others added 30 commits January 13, 2017 16:37
The existing documentation was redundant and confusing.

Closes #3679
A little bit excessive, but this will really help debugging issues with
Blocking Proxy.
Fix for #3978.

Our initial plan to allow setting --disableChecks with an environment variable is insufficient, since the custom framework isn't even require()'d until after the config is parsed. This moves the unknown flag check into the runner, and gives frameworks a way to specify extra flags they accept.
Replace browser.rootEl with browser.setAngularRoot(), which changes the root element in a promise on the control flow. Note that browser.rootEl will immediately return the current value, but browser.setAngularRoot() will return a promise that resolves during the next step in the control flow.

Also update to BlockingProxy 0.0.3, which allows changing rootSelector.
#3992)

Wrapping it in a `q` promise is blocking #3899

Closes #3902

Custom frameworks might not make this change but it'll be fine.  It'll only be a
problem in edge cases and they probably weren't returning the right promise
before anyway.
Also allows `browser.restart` to work when the control flow is disabled, and
fixes it for forked browsers.

Closes #3899 and
#3896
…se from `waitForAngularEnabled` (#4021)

Minor breaking change since `waitForAngularEnabled` no longer returns a boolean

Part of #3904

Chaining `browser.get` has proved surprisingly complex, so I'll do that in a different PR

Also fixed a minor bug in `lib/clientsidescripts.js` while debuging
…ibility (#4006)

Add test cases to reproduce the missing element race conditions possible in
expected condition methods `visibilityOf`, `textToBePresentInElement`,
`textToBePresentInValue` and `elementToBeClickable`.

Add error handler `falseIfMissing` to all expected conditions that depend
on the presence of an element.

Expected conditions check the presence of an element before other checks,
but when an element is removed exactly in the moment after the `isPresent`
and before `isDisplayed` in `visibilityOf` the condition used to fail.

This solution does not handle missing elements in (`isEnable`, `isDisplayed`, `isSelected`) and focused only on expected conditions (see
#3972)

This problem was also referenced in
#3578 and
#3777
The second test case fails. Updating so that it passes.
…ow is disabled (#4029)

Also added some tests to `spec/ts/noCF/smoke_spec.ts` double checking that the control flow is off
I decided to address this comment:

#4000 (comment)

While doing do I decided to take on this TODO:

https://github.com/angular/protractor/blob/ccf02ab5f1070f0d7124318dc0099252f3c747e2/lib/browser.ts#L38

One possible issue here is that `ProtractorBrowser` only copies over methods, so it doesn't actually
implement `WebDriver`'s interface.  This isn't a problem right now, since `WebDriver`'s interface
only has functions on it.  But it could be a problem in the future.
cnishina and others added 28 commits March 22, 2019 17:13
- elements workaround for WebElement.equals
- added a better unhandled rejection warning message in the launcher
- remove global function wrappers for mocha (these wrappers went away with
control flow)
- fix the attach to session driver provider

Typing exported from Protractor:

- removed ActionSequence and EventEmitter (actions is currently missing)
- removed promise.Promise
- removed Promise, defer, delayed, createFlow, controlFlow, all,
fulfilled, filter, when

Typings exported from WebDriver:

- removed attachToSession
- removed WebDriver instance methods: touchActions, call
- removed WebElement getSize and getLocation for getRect
- removed redefined global vars for testing
- In the typings, we are missing Options.setScriptTimeout method. This should not impact users unless they are using the driver.manage() method.

Tests:

- fix element equals test
- add missing 'await' in colorList test that is causing unhandled promise rejections.
- remove control flow related tests
- disable the install test. Installing from "file:../../" is not working.
- fix the attach to session driver provider test to exit with a 1 if errors are encountered
- Use `() => Promise<boolean>` over `Function` typings.
- Fix an ExpectedConditions test where it was set to a const.
- Fix a TypeScript typing interface issue with RunResults in taskRunner.
- Remove the USE_PROMISE_MANAGER test in spec/ts/basic
- Remove the check if we are using the control flow or not
- Move circle.yml file to .circleci/config.yml to satisfy circleci
warnings (version 1.0 deprecation).
- The browser in circle is version 69. The browser requires chromedriver
2.44.
Since the current changelog between the 6.0.0-beta and the 6.0.0 release
is minor, updated the changelog by removing the -beta.
 - commit hash was created in selenium4 branch during development.
- updates to changelog to help navigate users to find the commits.
- fixed unused assignment in runner cli
- convert switch to conditional in launcher
…oxy to 4.5.4

travis_wait is not needed if the sauce connect proxy logs are written to
stdout. This makes debugging proxy problems from the CI logs much
easier. This commit also updates the debugging command to use the
`--doctor` flag.

Other changes include:
1. Upgrade sauce-connect proxy to 4.4.1 to 4.5.4
Optimist has been deprecated over 2 years ago as has a security vulnerability. With this change we use it's successor `yargs`.

Closes: #5413
Sets the package.json publishConfig to use the wombat-dressing-room
registry.
@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

!(into[key] instanceof Function)) {
merge_(into[key], from[key]);
} else {
into[key] = from[key];

Check warning

Code scanning / CodeQL

Prototype-polluting function

Properties are copied from [from](1) to [into](2) without guarding against prototype pollution.
let timeout: RegExpExecArray;
if (/asynchronous script timeout/.test(err.message)) {
// Timeout on Chrome
timeout = /-?[\d\.]*\ seconds/.exec(err.message);

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data

This [regular expression](1) that depends on [library input](2) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](3) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](4) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](5) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](6) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](7) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](8) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](9) may run slow on strings with many repetitions of '.'.
timeout = /-?[\d\.]*\ seconds/.exec(err.message);
} else if (/Timed out waiting for async script/.test(err.message)) {
// Timeout on Firefox
timeout = /-?[\d\.]*ms/.exec(err.message);

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data

This [regular expression](1) that depends on [library input](2) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](3) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](4) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](5) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](6) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](7) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](8) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](9) may run slow on strings with many repetitions of '.'.
timeout = /-?[\d\.]*ms/.exec(err.message);
} else if (/Timed out waiting for an asynchronous script/.test(err.message)) {
// Timeout on Safari
timeout = /-?[\d\.]*\ ms/.exec(err.message);

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data

This [regular expression](1) that depends on [library input](2) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](3) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](4) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](5) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](6) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](7) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](8) may run slow on strings with many repetitions of '.'. This [regular expression](1) that depends on [library input](9) may run slow on strings with many repetitions of '.'.

logger.info(
'Using SauceLabs selenium server at ' +
this.config_.seleniumAddress.replace(/\/\/.+@/, '//'));

Check failure

Code scanning / CodeQL

Polynomial regular expression used on uncontrolled data

This [regular expression](1) that depends on [library input](2) may run slow on strings starting with '//' and with many repetitions of '//'. This [regular expression](1) that depends on [library input](3) may run slow on strings starting with '//' and with many repetitions of '//'.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.