blob: ca021db542ecb24a2952b37097e0cd9e22c294ba [file] [log] [blame]
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/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",
],
)