Files
gerrit/polygerrit-ui/app/BUILD
Dmitrii Filippov acd39a2d9d Add karma-runner and convert some tests to run with karma
The following changes are included in this change:
* karma-runner is added to the polygerrit-ui/package.json file
* bazel rule for karma tests is added to the polygerrit-ui/BUILD file
* The run_test.sh script is updated - it runs both deprecated
  web-component-tester(WCT) tests and karma tests
* Commands to run separately karma and wct tests are added to the top
  level package.json file
* The common-test-setup-karma.js file adds global functions to replace
  functionality provided by the WCT
* The postinstall step is added to the polygerrit-ui/package.json file
  to run 'selenium-standalone install' command.
  Note, that this is not a new command - it runs during the WCT
  install (see wct-local/scripts/postinstall.js), but sometimes it
  fails after switching between different branches. Calling it in the
  postinstall step of polygerrit-ui/package.json improves the
  situation.

Change-Id: Iaf480d22c5553d98eb7607a0e83a86b66f733caa
2020-05-06 15:27:48 +02:00

162 lines
3.3 KiB
Python

load(":rules.bzl", "polygerrit_bundle", "wct_suite")
load("//tools/js:eslint.bzl", "eslint")
package(default_visibility = ["//visibility:public"])
polygerrit_bundle(
name = "polygerrit_ui",
srcs = glob(
[
"**/*.js",
],
exclude = [
"node_modules/**",
"node_modules_licenses/**",
"test/**",
"**/*_test.html",
"**/*_test.js",
],
),
outs = ["polygerrit_ui.zip"],
entry_point = "elements/gr-app.html",
)
filegroup(
name = "pg_code",
srcs = glob(
[
"**/*.html",
"**/*.js",
],
exclude = [
"node_modules/**",
"node_modules_licenses/**",
],
),
)
filegroup(
name = "pg_code_without_test",
srcs = glob(
[
"**/*.html",
"**/*.js",
],
exclude = [
"node_modules/**",
"node_modules_licenses/**",
"**/*_test.html",
"test/**",
"samples/**",
"**/*_test.js",
],
),
)
# Workaround for https://github.com/bazelbuild/bazel/issues/1305
filegroup(
name = "test-srcs-fg",
srcs = [
"test/common-test-setup.js",
"test/common-test-setup-karma.js",
"test/index.html",
":pg_code",
"@ui_dev_npm//:node_modules",
"@ui_npm//:node_modules",
],
)
wct_suite(
name = "wct",
srcs = [":test-srcs-fg"],
split_count = 4,
)
# Define the eslinter for polygerrit-ui app
# The eslint macro creates 2 rules: lint_test and lint_bin
eslint(
name = "lint",
srcs = [":test-srcs-fg"],
config = ".eslintrc-bazel.js",
# The .eslintrc-bazel.js extends the .eslintrc.js config, pass it as a dependency
data = [".eslintrc.js"],
extensions = [
".html",
".js",
],
ignore = ".eslintignore",
plugins = [
"@npm//eslint-config-google",
"@npm//eslint-plugin-html",
"@npm//eslint-plugin-import",
"@npm//eslint-plugin-jsdoc",
"@npm//eslint-plugin-prettier",
],
)
# Workaround for https://github.com/bazelbuild/bazel/issues/1305
filegroup(
name = "polylint-fg",
srcs = [
":pg_code_without_test",
"@ui_npm//:node_modules",
],
)
sh_test(
name = "polylint_test",
size = "large",
srcs = ["polylint_test.sh"],
args = [
"$(location @tools_npm//polymer-cli/bin:polymer)",
"$(location polymer.json)",
],
data = [
"polymer.json",
":polylint-fg",
"@tools_npm//polymer-cli/bin:polymer",
],
# Should not run sandboxed.
tags = [
"local",
"manual",
],
)
DIRECTORIES = [
"admin",
"change",
"change-list",
"core",
"diff",
"edit",
"plugins",
"settings",
"shared",
"gr-app",
]
[sh_test(
name = "template_test_" + directory,
size = "enormous",
srcs = ["template_test.sh"],
args = [directory],
data = [
":pg_code",
":template_test_srcs",
],
tags = [
# Should not run sandboxed.
"local",
"template",
],
) for directory in DIRECTORIES]
filegroup(
name = "template_test_srcs",
srcs = [
"template_test_srcs/convert_for_template_tests.py",
"template_test_srcs/template_test.js",
],
)