load("//ReactNative:DEFS.bzl", "ANDROID_JSC_DEPS", "APPLE_JSC_DEPS", "IS_OSS_BUILD", "react_native_xplat_target")

TEST_SRCS = [
    "RecoverableErrorTest.cpp",
    "jsarg_helpers.cpp",
    "jsbigstring.cpp",
    "jscexecutor.cpp",
    "jsclogging.cpp",
    "methodcall.cpp",
    "value.cpp",
]

if not IS_OSS_BUILD:
    load("@xplat//build_defs:fb_xplat_cxx_test.bzl", "fb_xplat_cxx_test")
    load("@xplat//configurations/buck/android:jni_instrumentation_test", "jni_instrumentation_test_lib")
    load("@xplat//configurations/buck:default_platform_defs.bzl", "APPLE")

    jni_instrumentation_test_lib(
        name = "tests",
        class_under_test = "com/facebook/react/XplatBridgeTest",
        soname = "libxplat-bridge.so",
        srcs = TEST_SRCS,
        compiler_flags = [
            "-fexceptions",
            "-frtti",
            "-std=c++14",
        ],
        deps = [
            "xplat//third-party/linker_lib:android",
            "xplat//third-party/gmock:gtest",
            react_native_xplat_target("cxxreact:bridge"),
        ] + ANDROID_JSC_DEPS,
        visibility = [
            "fbandroid//instrumentation_tests/...",
        ],
    )

    fb_xplat_cxx_test(
        name = "tests",
        srcs = TEST_SRCS,
        compiler_flags = [
            "-fexceptions",
            "-frtti",
        ],
        platforms = APPLE,
        deps = [
            "xplat//folly:molly",
            "xplat//third-party/gmock:gtest",
            react_native_xplat_target("cxxreact:bridge"),
            react_native_xplat_target("jschelpers:jschelpers"),
        ] + APPLE_JSC_DEPS,
        visibility = [
            react_native_xplat_target("cxxreact/..."),
        ],
    )
