blob: 7af6f8949c4dfaaecfc3928486d6bc4b79726092 [file] [log] [blame] [edit]
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", "pkg_npm")
load("@npm//@bazel/jasmine:index.bzl", "jasmine_node_test")
load("//common:defs.bzl", "copy_file")
BROWSER_VERSIONS = [
"v85",
"v122",
"v120",
"v121",
]
SRC_FILES = [
"CHANGES.md",
"README.md",
"package.json",
] + glob([
"*.js",
"example/*.js",
"http/*.js",
"io/*.js",
"lib/*.js",
"net/*.js",
"remote/*.js",
"testing/*.js",
"devtools/*.js",
"common/*.js",
"bidi/*.js",
])
pkg_npm(
name = "selenium-webdriver",
package_name = "selenium-webdriver",
srcs = SRC_FILES,
deps = [
":license",
":manager-linux",
":manager-macos",
":manager-windows",
"//javascript/node/selenium-webdriver/lib/atoms:find-elements",
"//javascript/node/selenium-webdriver/lib/atoms:get_attribute",
"//javascript/node/selenium-webdriver/lib/atoms:is_displayed",
"//javascript/node/selenium-webdriver/lib/atoms:mutation-listener",
],
)
TEST_FILES = glob(["test/**/*_test.js"])
TEST_DATA = SRC_FILES + glob(
[
"lib/test/**",
"test/**",
],
exclude = TEST_FILES,
)
nodejs_binary(
name = "fileserver",
data = TEST_DATA + [
"//common/src/web",
"//javascript/node/selenium-webdriver/lib/atoms:find-elements",
"//javascript/node/selenium-webdriver/lib/atoms:get_attribute",
"//javascript/node/selenium-webdriver/lib/atoms:is_displayed",
"//javascript/node/selenium-webdriver/lib/atoms:mutation-listener",
"@npm//express",
"@npm//jszip",
"@npm//multer",
"@npm//rimraf",
"@npm//serve-index",
"@npm//tmp",
],
entry_point = "lib/test/fileserver.js",
)
jasmine_node_test(
name = "tests",
srcs = TEST_FILES,
data = TEST_DATA + [
"tools/init_jasmine.js",
"//common/extensions",
"//common/src/web",
"@npm//express",
"@npm//jszip",
"@npm//multer",
"@npm//rimraf",
"@npm//serve-index",
"@npm//sinon",
"@npm//tmp",
"@npm//ws",
],
local = True,
templated_args = ["--node_options=--require=$$(rlocation $(rootpath :tools/init_jasmine.js))"],
deps = [
":manager-linux",
":manager-macos",
":manager-windows",
"//javascript/node/selenium-webdriver/lib/atoms:find-elements",
"//javascript/node/selenium-webdriver/lib/atoms:get_attribute",
"//javascript/node/selenium-webdriver/lib/atoms:is_displayed",
"//javascript/node/selenium-webdriver/lib/atoms:mutation-listener",
"@npm//jasmine",
],
)
# npm_package does not pick up filegroup sources.
genrule(
name = "license",
srcs = ["//:license"],
outs = [
"LICENSE",
"NOTICE",
],
cmd = "cp $(locations //:license) $(@D)",
)
copy_file(
name = "manager-linux",
src = "//common/manager:selenium-manager-linux",
out = "bin/linux/selenium-manager",
)
copy_file(
name = "manager-macos",
src = "//common/manager:selenium-manager-macos",
out = "bin/macos/selenium-manager",
)
copy_file(
name = "manager-windows",
src = "//common/manager:selenium-manager-windows",
out = "bin/windows/selenium-manager.exe",
)