load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_to_bin")
load("@aspect_rules_js//js:defs.bzl", "js_library")
load("@aspect_rules_js//npm:defs.bzl", "npm_package")
load("@npm//:defs.bzl", "npm_link_all_packages")
load("@npm//javascript/selenium-webdriver:eslint/package_json.bzl", eslint_bin = "bin")
load("@npm//javascript/selenium-webdriver:prettier/package_json.bzl", prettier_bin = "bin")
load("@rules_pkg//pkg:pkg.bzl", "pkg_tar")
load("//common:defs.bzl", "copy_file")
load("//javascript:defs.bzl", "mocha_test")
load("//javascript/private:browsers.bzl", "BROWSERS")

npm_link_all_packages(name = "node_modules")

VERSION = "4.40.0-nightly202512070022"

BROWSER_VERSIONS = [
    "v143",
    "v141",
    "v142",
]

js_library(
    name = "prod-src-files",
    srcs = [
        "CHANGES.md",
        "README.md",
        "package.json",
    ] + glob([
        "*.js",
        "example/*.js",
        "http/*.js",
        "io/*.js",
        "lib/*.js",
        "lib/fedcm/*.js",
        "net/*.js",
        "remote/*.js",
        "testing/*.js",
        "devtools/*.js",
        "common/*.js",
        "bidi/*.js",
        "bidi/external/*.js",
    ]),
    deps = [
        ":node_modules/@bazel/runfiles",
        ":node_modules/jszip",
        ":node_modules/tmp",
        ":node_modules/ws",
    ],
)

npm_package(
    name = "selenium-webdriver",
    srcs = [
        ":license",
        ":manager-linux",
        ":manager-macos",
        ":manager-windows",
        ":prod-src-files",
        "//javascript/selenium-webdriver/lib/atoms:bidi-mutation-listener",
        "//javascript/selenium-webdriver/lib/atoms:find-elements",
        "//javascript/selenium-webdriver/lib/atoms:get_attribute",
        "//javascript/selenium-webdriver/lib/atoms:is_displayed",
        "//javascript/selenium-webdriver/lib/atoms:mutation-listener",
    ],
    package = "selenium-webdriver",
    publishable = True,
    tags = [
        "release-artifact",
    ],
    version = VERSION,
    visibility = ["//visibility:public"],
)

pkg_tar(
    name = "selenium-webdriver.tgz",
    srcs = [
        ":selenium-webdriver",
    ],
    out = "selenium-webdriver-%s.tgz" % VERSION,
    extension = "tgz",
    package_dir = "package",
    strip_prefix = "selenium-webdriver",
)

SMALL_TESTS = [
    "test/io/io_test.js",
    "test/io/zip_test.js",
    "test/lib/by_test.js",
    "test/lib/credentials_test.js",
    "test/lib/error_test.js",
    "test/lib/http_test.js",
    "test/lib/input_test.js",
    "test/lib/logging_test.js",
    "test/lib/promise_test.js",
    "test/lib/until_test.js",
    "test/lib/virtualauthenticatoroptions_test.js",
    "test/lib/webdriver_test.js",
    "test/net/index_test.js",
    "test/net/portprober_test.js",
]

LARGE_TESTS = glob(
    ["test/**/*_test.js"],
    exclude = SMALL_TESTS,
)

js_library(
    name = "small-test-srcs",
    srcs = SMALL_TESTS,
)

js_library(
    name = "large-test-srcs",
    srcs = LARGE_TESTS,
)

js_library(
    name = "test-data",
    srcs = glob(
        [
            "lib/test/**",
            "test/**",
        ],
        exclude = [
            "test/**/*_test.js",
        ],
    ),
    deps = [
        ":node_modules/@bazel/runfiles",
    ],
)

mocha_test(
    name = "small-tests",
    size = "small",
    args = ["./**/*test.js"],
    chdir = package_name(),
    data = [
        ":node_modules/@bazel/runfiles",
        ":node_modules/mocha",
        ":node_modules/mocha-junit-reporter",
        ":node_modules/sinon",
        ":small-test-srcs",
        ":test-data",
        "//:node_modules/selenium-webdriver",
        "//common/extensions:js-lib",
        "//common/src/web:js-lib",
    ],
)

[
    [
        mocha_test(
            name = "%s-%s" % (
                test.replace("/", "-").replace("_", "-"),
                browser,
            ),
            size = "large",
            args = [
                "--retries",
                "1",
                test,
            ],
            chdir = package_name(),
            data = [
                ":large-test-srcs",
                ":node_modules/express",
                ":node_modules/mocha",
                ":node_modules/mocha-junit-reporter",
                ":node_modules/multer",
                ":node_modules/serve-index",
                ":node_modules/sinon",
                ":test-data",
                "//:node_modules/selenium-webdriver",
                "//common/extensions:js-lib",
                "//common/src/web:js-lib",
            ] + BROWSERS[browser]["data"],
            env = {
                "SELENIUM_BROWSER": browser,
            } | BROWSERS[browser]["env"],
            tags = [
                browser,
                "browser-test",
                "no-sandbox",
                "requires-network",
            ],
        ),
    ]
    for test in LARGE_TESTS
    for browser in BROWSERS.keys()
]

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

copy_to_bin(
    name = "package-json",
    srcs = ["package.json"],
)

eslint_bin.eslint_test(
    name = "eslint-test",
    chdir = package_name(),
    data = [
        ":eslint-config",
        ":node_modules/@eslint/js",
        ":node_modules/eslint-plugin-mocha",
        ":node_modules/eslint-plugin-n",
        ":node_modules/eslint-plugin-no-only-tests",
        ":node_modules/eslint-plugin-prettier",
        ":node_modules/globals",
        ":node_modules/jszip",
        ":node_modules/mocha",
        ":node_modules/tmp",
        ":node_modules/ws",
        ":package-json",
        ":prod-src-files",
    ],
    tags = [
        "lint",
    ],
)

copy_to_bin(
    name = "eslint-config",
    srcs = ["eslint.config.js"],
)

prettier_bin.prettier_test(
    name = "prettier-test",
    args = [
        ".",
        "--check",
        "--ignore-unknown",
        "--config=.prettierrc",
    ],
    chdir = package_name(),
    data = [
        ":large-test-srcs",
        ":prettier-config",
        ":prettier-ignore",
        ":prod-src-files",
        ":small-test-srcs",
    ],
    tags = [
        "lint",
    ],
)

copy_to_bin(
    name = "prettier-config",
    srcs = [".prettierrc"],
)

copy_to_bin(
    name = "prettier-ignore",
    srcs = [".prettierignore"],
)
