a35fa9012f
When installing web-component-tester fails with the error: "EACCES: permission denied, mkdir" it can be fixed by adding the `--unsafe-perm=true --allow-root` options as described in [1]. [1] https://github.com/npm/npm/issues/17268#issuecomment-310167614 Change-Id: I397d31209c019ebbe52bf24bd9e359d71863ffd7
131 lines
2.9 KiB
Markdown
131 lines
2.9 KiB
Markdown
# PolyGerrit
|
|
|
|
## Installing [Node.js](https://nodejs.org/en/download/)
|
|
|
|
The minimum nodejs version supported is 6.x+
|
|
|
|
```sh
|
|
# Debian experimental
|
|
sudo apt-get install nodejs-legacy
|
|
|
|
# OS X with Homebrew
|
|
brew install node
|
|
```
|
|
|
|
All other platforms: [download from
|
|
nodejs.org](https://nodejs.org/en/download/).
|
|
|
|
## Installing [Bazel](https://bazel.build/)
|
|
|
|
Follow the instructions
|
|
[here](https://gerrit-review.googlesource.com/Documentation/dev-bazel.html#_installation)
|
|
to get and install Bazel.
|
|
|
|
## Local UI, Production Data
|
|
|
|
This is a quick and easy way to test your local changes against real data.
|
|
Unfortunately, you can't sign in, so testing certain features will require
|
|
you to use the "test data" technique described below.
|
|
|
|
### Installing [go](https://golang.org/)
|
|
|
|
This is required for running the `run-server.sh` script below.
|
|
|
|
```sh
|
|
# Debian/Ubuntu
|
|
sudo apt-get install golang
|
|
|
|
# OS X with Homebrew
|
|
brew install go
|
|
```
|
|
|
|
All other platforms: [download from golang.org](https://golang.org/)
|
|
|
|
Then add go to your path:
|
|
|
|
```
|
|
PATH=$PATH:/usr/local/go/bin
|
|
```
|
|
|
|
### Running the server
|
|
|
|
To test the local UI against gerrit-review.googlesource.com:
|
|
|
|
```sh
|
|
./run-server.sh
|
|
```
|
|
|
|
Then visit http://localhost:8081
|
|
|
|
## Local UI, Test Data
|
|
|
|
One-time setup:
|
|
|
|
1. [Build Gerrit](https://gerrit-review.googlesource.com/Documentation/dev-bazel.html#_gerrit_development_war_file)
|
|
2. Set up a local test site. Docs
|
|
[here](https://gerrit-review.googlesource.com/Documentation/install-quick.html) and
|
|
[here](https://gerrit-review.googlesource.com/Documentation/dev-readme.html#init).
|
|
|
|
When your project is set up and works using the classic UI, run a test server
|
|
that serves PolyGerrit:
|
|
|
|
```sh
|
|
bazel build polygerrit && \
|
|
java -jar bazel-bin/polygerrit.war daemon --polygerrit-dev \
|
|
-d ../gerrit_testsite --console-log --show-stack-trace
|
|
```
|
|
|
|
## Running Tests
|
|
|
|
One-time setup:
|
|
|
|
```sh
|
|
# Debian/Ubuntu
|
|
sudo apt-get install npm
|
|
|
|
# OS X with Homebrew
|
|
brew install npm
|
|
|
|
# All platforms (including those above)
|
|
sudo npm install -g web-component-tester
|
|
```
|
|
|
|
Note: it may be necessary to add the options `--unsafe-perm=true --allow-root`
|
|
to the `npm install` command to avoid file permission errors.
|
|
|
|
Run all web tests:
|
|
|
|
```sh
|
|
./polygerrit-ui/app/run_test.sh
|
|
```
|
|
|
|
If you need to pass additional arguments to `wct`:
|
|
|
|
```sh
|
|
WCT_ARGS='-p --some-flag="foo bar"' ./polygerrit-ui/app/run_test.sh
|
|
```
|
|
|
|
For interactively working on a single test file, do the following:
|
|
|
|
```sh
|
|
./polygerrit-ui/run-server.sh
|
|
```
|
|
|
|
Then visit http://localhost:8081/elements/foo/bar_test.html
|
|
|
|
To run Chrome tests in headless mode:
|
|
|
|
```sh
|
|
WCT_HEADLESS_MODE=1 ./polygerrit-ui/app/run_test.sh
|
|
```
|
|
|
|
Toolchain requirements for headless mode:
|
|
|
|
* Chrome: 59+
|
|
* web-component-tester: v6.5.0+
|
|
|
|
## Style guide
|
|
|
|
We follow the [Google JavaScript Style Guide](https://google.github.io/styleguide/javascriptguide.xml)
|
|
with a few exceptions. When in doubt, remain consistent with the code around you.
|