From 2dbe32d296f38dcdbbd2788dbfef3b33e41d5bfc Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz Date: Tue, 14 Sep 2021 16:16:01 +0200 Subject: [PATCH 1/9] e2e test --- .../jetbrains/bsp/bazel/BazelBspSampleRepoTest.java | 11 +++++++++-- e2e/test-resources/sample-repo/WORKSPACE | 3 +++ e2e/test-resources/sample-repo/example/BUILD | 10 +++++++++- .../sample-repo/example/ExampleSpec2Test.scala | 13 +++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala diff --git a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java index b638c9ed7..2964daad2 100644 --- a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java +++ b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java @@ -209,15 +209,22 @@ private BazelBspTestScenarioStep scalaTestClasses() { new ScalaTestClassesParams( ImmutableList.of( new BuildTargetIdentifier("//example:example"), - new BuildTargetIdentifier("//example:example-test"))); + new BuildTargetIdentifier("//example:example-test"), + new BuildTargetIdentifier("//example:example-spec2-test"))); ScalaTestClassesItem exampleExampleTestTestClasses = new ScalaTestClassesItem( new BuildTargetIdentifier("//example:example-test"), ImmutableList.of("example.ExampleTest")); + ScalaTestClassesItem exampleExampleSpec2TestTestClasses = + new ScalaTestClassesItem( + new BuildTargetIdentifier("//example:example-spec2-test"), + ImmutableList.of("example.ExampleSpec2Test")); + ScalaTestClassesResult expectedScalaTestClassesResult = - new ScalaTestClassesResult(ImmutableList.of(exampleExampleTestTestClasses)); + new ScalaTestClassesResult( + ImmutableList.of(exampleExampleTestTestClasses, exampleExampleSpec2TestTestClasses)); return new BazelBspTestScenarioStep( "Scala test classes", diff --git a/e2e/test-resources/sample-repo/WORKSPACE b/e2e/test-resources/sample-repo/WORKSPACE index 95322e038..e61b54424 100644 --- a/e2e/test-resources/sample-repo/WORKSPACE +++ b/e2e/test-resources/sample-repo/WORKSPACE @@ -77,6 +77,9 @@ http_archive( url = "https://github.com/bazelbuild/rules_jvm_external/archive/2.8.zip", ) +load("@io_bazel_rules_scala//specs2:specs2_junit.bzl", "specs2_junit_dependencies", "specs2_junit_repositories") +specs2_junit_repositories() + load("@rules_jvm_external//:defs.bzl", "maven_install") maven_install( diff --git a/e2e/test-resources/sample-repo/example/BUILD b/e2e/test-resources/sample-repo/example/BUILD index 5129c06a5..0ee7314ef 100644 --- a/e2e/test-resources/sample-repo/example/BUILD +++ b/e2e/test-resources/sample-repo/example/BUILD @@ -1,4 +1,4 @@ -load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_test") +load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_test", "scala_specs2_junit_test") filegroup( name = "resources", @@ -31,3 +31,11 @@ scala_test( visibility = ["//visibility:public"], deps = ["//dep"], ) + +scala_specs2_junit_test( + name = "example-spec2-test", + srcs = ["ExampleSpec2Test.scala"], + visibility = ["//visibility:public"], + resources = [":resources"], + deps = ["//dep"], +) diff --git a/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala b/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala new file mode 100644 index 000000000..06a76d14a --- /dev/null +++ b/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala @@ -0,0 +1,13 @@ +package example + +import dep.Dep +import org.specs2.mutable._ + +class ExampleSpec2Test extends Specification { + "Test" should { + "be test" in { + Dep.list.head + "Test" must have size (4) + } + } +} From ba04c9fba377eb0e921776854eb27344624bb3dd Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz Date: Tue, 14 Sep 2021 16:18:26 +0200 Subject: [PATCH 2/9] buildifier --- e2e/test-resources/sample-repo/WORKSPACE | 1 + e2e/test-resources/sample-repo/example/BUILD | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/e2e/test-resources/sample-repo/WORKSPACE b/e2e/test-resources/sample-repo/WORKSPACE index e61b54424..b7708d092 100644 --- a/e2e/test-resources/sample-repo/WORKSPACE +++ b/e2e/test-resources/sample-repo/WORKSPACE @@ -78,6 +78,7 @@ http_archive( ) load("@io_bazel_rules_scala//specs2:specs2_junit.bzl", "specs2_junit_dependencies", "specs2_junit_repositories") + specs2_junit_repositories() load("@rules_jvm_external//:defs.bzl", "maven_install") diff --git a/e2e/test-resources/sample-repo/example/BUILD b/e2e/test-resources/sample-repo/example/BUILD index 0ee7314ef..02753b472 100644 --- a/e2e/test-resources/sample-repo/example/BUILD +++ b/e2e/test-resources/sample-repo/example/BUILD @@ -1,4 +1,4 @@ -load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_test", "scala_specs2_junit_test") +load("@io_bazel_rules_scala//scala:scala.bzl", "scala_binary", "scala_specs2_junit_test", "scala_test") filegroup( name = "resources", @@ -35,7 +35,7 @@ scala_test( scala_specs2_junit_test( name = "example-spec2-test", srcs = ["ExampleSpec2Test.scala"], - visibility = ["//visibility:public"], resources = [":resources"], + visibility = ["//visibility:public"], deps = ["//dep"], ) From 34f726546d2460c96835dc651ee99d0abc30b8f1 Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz Date: Wed, 15 Sep 2021 17:27:04 +0200 Subject: [PATCH 3/9] scala_specs2_junit_test should be included in model now --- e2e/test-resources/sample-repo/example/BUILD | 1 + .../sample-repo/example/ExampleSpec2Test.scala | 2 +- .../bazel/server/bsp/services/ScalaBuildServerService.java | 5 +++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/e2e/test-resources/sample-repo/example/BUILD b/e2e/test-resources/sample-repo/example/BUILD index 02753b472..9cb2678fa 100644 --- a/e2e/test-resources/sample-repo/example/BUILD +++ b/e2e/test-resources/sample-repo/example/BUILD @@ -38,4 +38,5 @@ scala_specs2_junit_test( resources = [":resources"], visibility = ["//visibility:public"], deps = ["//dep"], + suffixes = ["Test"], ) diff --git a/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala b/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala index 06a76d14a..f1f1b2f6a 100644 --- a/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala +++ b/e2e/test-resources/sample-repo/example/ExampleSpec2Test.scala @@ -3,7 +3,7 @@ package example import dep.Dep import org.specs2.mutable._ -class ExampleSpec2Test extends Specification { +class ExampleSpec2Test extends SpecificationWithJUnit { "Test" should { "be test" in { Dep.list.head diff --git a/server/src/main/java/org/jetbrains/bsp/bazel/server/bsp/services/ScalaBuildServerService.java b/server/src/main/java/org/jetbrains/bsp/bazel/server/bsp/services/ScalaBuildServerService.java index b3f936938..b211244ff 100644 --- a/server/src/main/java/org/jetbrains/bsp/bazel/server/bsp/services/ScalaBuildServerService.java +++ b/server/src/main/java/org/jetbrains/bsp/bazel/server/bsp/services/ScalaBuildServerService.java @@ -36,7 +36,8 @@ public class ScalaBuildServerService { private static final List SCALA_LANGUAGES_IDS = ImmutableList.of(Constants.SCALAC, Constants.JAVAC); - private static final String SCALA_TEST_RULE_CLASS_NAME = "scala_test"; + private static final List SCALA_TEST_RULE_CLASS_NAMES = + ImmutableList.of("scala_test", "scala_junit_test"); private final TargetsLanguageOptionsResolver targetsLanguageOptionsResolver; private final TargetRulesResolver targetsScalaMainClassesRulesResolver; @@ -69,7 +70,7 @@ public ScalaBuildServerService( } private boolean isScalaTestRule(Build.Rule rule) { - return rule.getRuleClass().equals(SCALA_TEST_RULE_CLASS_NAME); + return SCALA_TEST_RULE_CLASS_NAMES.contains(rule.getRuleClass()); } private ScalaTestClassesItem mapRuleToTestClassesItem(Build.Rule rule) { From f69efee52115ea9e92d2979eca69fb055b6a3460 Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz Date: Wed, 15 Sep 2021 17:28:35 +0200 Subject: [PATCH 4/9] buildifier --- e2e/test-resources/sample-repo/WORKSPACE | 2 +- e2e/test-resources/sample-repo/example/BUILD | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/test-resources/sample-repo/WORKSPACE b/e2e/test-resources/sample-repo/WORKSPACE index b7708d092..658a58f61 100644 --- a/e2e/test-resources/sample-repo/WORKSPACE +++ b/e2e/test-resources/sample-repo/WORKSPACE @@ -77,7 +77,7 @@ http_archive( url = "https://github.com/bazelbuild/rules_jvm_external/archive/2.8.zip", ) -load("@io_bazel_rules_scala//specs2:specs2_junit.bzl", "specs2_junit_dependencies", "specs2_junit_repositories") +load("@io_bazel_rules_scala//specs2:specs2_junit.bzl", "specs2_junit_repositories") specs2_junit_repositories() diff --git a/e2e/test-resources/sample-repo/example/BUILD b/e2e/test-resources/sample-repo/example/BUILD index 9cb2678fa..160c221a4 100644 --- a/e2e/test-resources/sample-repo/example/BUILD +++ b/e2e/test-resources/sample-repo/example/BUILD @@ -36,7 +36,7 @@ scala_specs2_junit_test( name = "example-spec2-test", srcs = ["ExampleSpec2Test.scala"], resources = [":resources"], + suffixes = ["Test"], visibility = ["//visibility:public"], deps = ["//dep"], - suffixes = ["Test"], ) From 4f9a78f7168cc38556e77e2a1efaa985f129de80 Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz Date: Wed, 22 Sep 2021 12:22:12 +0200 Subject: [PATCH 5/9] test update --- .../jetbrains/bsp/bazel/BazelBspSampleRepoTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java index 2964daad2..c094edf62 100644 --- a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java +++ b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java @@ -217,14 +217,15 @@ private BazelBspTestScenarioStep scalaTestClasses() { new BuildTargetIdentifier("//example:example-test"), ImmutableList.of("example.ExampleTest")); - ScalaTestClassesItem exampleExampleSpec2TestTestClasses = - new ScalaTestClassesItem( - new BuildTargetIdentifier("//example:example-spec2-test"), - ImmutableList.of("example.ExampleSpec2Test")); + // TODO (https://github.com/JetBrains/bazel-bsp/issues/96) + // ScalaTestClassesItem exampleExampleSpec2TestTestClasses = + // new ScalaTestClassesItem( + // new BuildTargetIdentifier("//example:example-spec2-test"), + // ImmutableList.of("example.ExampleSpec2Test")); ScalaTestClassesResult expectedScalaTestClassesResult = new ScalaTestClassesResult( - ImmutableList.of(exampleExampleTestTestClasses, exampleExampleSpec2TestTestClasses)); + ImmutableList.of(exampleExampleTestTestClasses)); return new BazelBspTestScenarioStep( "Scala test classes", From e9976c9eb7a0cb88b9cea2afd06a6fc512151075 Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz <44381959+Abrams27@users.noreply.github.com> Date: Wed, 22 Sep 2021 12:27:11 +0200 Subject: [PATCH 6/9] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b6e3dd82..98bc7b0ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - Warnings generated by the [WORKSPACE file](WORKSPACE). | [#81](https://github.com/JetBrains/bazel-bsp/pull/81) - Semantic versioning parser - now it can parse every valid version. | [#93](https://github.com/JetBrains/bazel-bsp/pull/93) - `exports` attribute propagation to the BSP | [#98](https://github.com/JetBrains/bazel-bsp/pull/98) +- Now `scala_junit_test` rule is included in the BSP tests, unfortunately without test classes. | [#101](https://github.com/JetBrains/bazel-bsp/pull/101) ## [1.0.0] - 23.08.2021 ### Added From d411097570816bfc90b5ae5c55223a7d2cfce68b Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz <44381959+Abrams27@users.noreply.github.com> Date: Wed, 22 Sep 2021 12:28:10 +0200 Subject: [PATCH 7/9] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98bc7b0ed..5ed3ddc75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,7 @@ - Warnings generated by the [WORKSPACE file](WORKSPACE). | [#81](https://github.com/JetBrains/bazel-bsp/pull/81) - Semantic versioning parser - now it can parse every valid version. | [#93](https://github.com/JetBrains/bazel-bsp/pull/93) - `exports` attribute propagation to the BSP | [#98](https://github.com/JetBrains/bazel-bsp/pull/98) -- Now `scala_junit_test` rule is included in the BSP tests, unfortunately without test classes. | [#101](https://github.com/JetBrains/bazel-bsp/pull/101) +- Now all `scala_junit_test` based rules (including `scala_specs2_junit_test`) are included in the BSP tests, unfortunately without test classes. | [#101](https://github.com/JetBrains/bazel-bsp/pull/101) ## [1.0.0] - 23.08.2021 ### Added From 898b479cd46ab6b3a4800ce5543416b4a7129aad Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz Date: Wed, 22 Sep 2021 12:30:01 +0200 Subject: [PATCH 8/9] format --- .../java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java index c094edf62..7b2afe882 100644 --- a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java +++ b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java @@ -224,8 +224,7 @@ private BazelBspTestScenarioStep scalaTestClasses() { // ImmutableList.of("example.ExampleSpec2Test")); ScalaTestClassesResult expectedScalaTestClassesResult = - new ScalaTestClassesResult( - ImmutableList.of(exampleExampleTestTestClasses)); + new ScalaTestClassesResult(ImmutableList.of(exampleExampleTestTestClasses)); return new BazelBspTestScenarioStep( "Scala test classes", From 775001880870f64e13665a8f2393a988a5e6481a Mon Sep 17 00:00:00 2001 From: Marcin Abramowicz Date: Wed, 22 Sep 2021 12:41:32 +0200 Subject: [PATCH 9/9] fix --- .../jetbrains/bsp/bazel/BazelBspSampleRepoTest.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java index 7b2afe882..371321555 100644 --- a/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java +++ b/e2e/src/main/java/org/jetbrains/bsp/bazel/BazelBspSampleRepoTest.java @@ -218,13 +218,13 @@ private BazelBspTestScenarioStep scalaTestClasses() { ImmutableList.of("example.ExampleTest")); // TODO (https://github.com/JetBrains/bazel-bsp/issues/96) - // ScalaTestClassesItem exampleExampleSpec2TestTestClasses = - // new ScalaTestClassesItem( - // new BuildTargetIdentifier("//example:example-spec2-test"), - // ImmutableList.of("example.ExampleSpec2Test")); + ScalaTestClassesItem exampleExampleSpec2TestTestClasses = + new ScalaTestClassesItem( + new BuildTargetIdentifier("//example:example-spec2-test"), ImmutableList.of()); ScalaTestClassesResult expectedScalaTestClassesResult = - new ScalaTestClassesResult(ImmutableList.of(exampleExampleTestTestClasses)); + new ScalaTestClassesResult( + ImmutableList.of(exampleExampleTestTestClasses, exampleExampleSpec2TestTestClasses)); return new BazelBspTestScenarioStep( "Scala test classes",