| 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", |
| ) |