Skip to content

Commit 631361b

Browse files
committed
[#64] Fix input filter in StepIndex + unit tests
1 parent 793497c commit 631361b

File tree

10 files changed

+106
-4
lines changed

10 files changed

+106
-4
lines changed

cucumber-scala/src/main/scala/com/github/vbmacher/intellij/cucumber/scala/ScCucumberStepIndex.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@
33
import com.intellij.lang.LighterAST;
44
import com.intellij.lang.LighterASTNode;
55
import com.intellij.openapi.vfs.VirtualFile;
6-
import com.intellij.psi.impl.source.JavaFileElementType;
76
import com.intellij.psi.impl.source.tree.RecursiveLighterASTNodeWalkingVisitor;
87
import com.intellij.util.indexing.*;
98
import org.jetbrains.annotations.NotNull;
109
import org.jetbrains.plugins.cucumber.CucumberStepIndex;
1110
import org.jetbrains.plugins.scala.ScalaFileType;
1211
import org.jetbrains.plugins.scala.lang.parser.ScalaElementType;
1312

14-
import java.util.*;
13+
import java.util.ArrayList;
14+
import java.util.HashMap;
15+
import java.util.List;
16+
import java.util.Map;
1517

1618
public class ScCucumberStepIndex extends CucumberStepIndex {
1719
private final static String[] PACKAGES = new String[ScCucumberUtil.CUCUMBER_PACKAGES().length()];
@@ -25,7 +27,7 @@ public class ScCucumberStepIndex extends CucumberStepIndex {
2527
private final FileBasedIndex.InputFilter inputFilter = new DefaultFileTypeSpecificInputFilter(ScalaFileType.INSTANCE) {
2628
@Override
2729
public boolean acceptInput(@NotNull VirtualFile file) {
28-
return super.acceptInput(file) && JavaFileElementType.isInSourceContent(file);
30+
return super.acceptInput(file);
2931
}
3032
};
3133

Binary file not shown.
Binary file not shown.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Feature: Something
2+
3+
Scenario: Adding
4+
When I add 5 and 6
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.github.vbmacher.intellij.cucumber.scala
2+
3+
import java.io.File
4+
import java.net.URL
5+
6+
import com.intellij.openapi.module.Module
7+
import com.intellij.openapi.roots.ModifiableRootModel
8+
import com.intellij.testFramework.PsiTestUtil
9+
10+
case class LocalDependency(libraryName: String, jarPath: URL, srcPath: URL) extends Dependency {
11+
12+
def addToModule(module: Module, model: ModifiableRootModel): Unit = {
13+
PsiTestUtil.newLibrary(libraryName)
14+
.classesRoot(new File(jarPath.toURI).getPath)
15+
.sourceRoot(new File(srcPath.toURI).getPath)
16+
.addTo(model)
17+
}
18+
}

cucumber-scala/src/test/scala/com/github/vbmacher/intellij/cucumber/scala/ScCucumberSpecBase.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ abstract class ScCucumberSpecBase extends BasePlatformTestCase with AnyFunSpecLi
1313
protected lazy val LOG = Logger.getRootLogger
1414

1515
val DESCRIPTOR = new LibraryLightProjectDescriptor(
16-
RemoteDependency("io.cucumber:cucumber-scala_2.12:5.7.0")
16+
//RemoteDependency("io.cucumber:cucumber-scala_2.12:6.1.2")
1717
)
1818

1919
@Before
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.github.vbmacher.intellij.cucumber.scala.resolve
2+
3+
import com.github.vbmacher.intellij.cucumber.scala.{LibraryLightProjectDescriptor, LocalDependency}
4+
import org.junit.Test
5+
6+
class StepResolveLibrarySpec extends StepResolveSpecBase {
7+
8+
override val DESCRIPTOR = new LibraryLightProjectDescriptor(
9+
LocalDependency(
10+
"example-stepdefs-lib",
11+
classOf[StepResolveLibrarySpec].getResource("/example-stepdefs-lib/example-stepdefs-lib-1.0.0.jar"),
12+
classOf[StepResolveLibrarySpec].getResource("/example-stepdefs-lib/example-stepdefs-lib-1.0.0-sources.jar")
13+
)
14+
)
15+
16+
private val checkResolveDirect = singleResolve("stepsInLibrary/testcase.feature") _
17+
18+
@Test
19+
def testResolveSimple(): Unit = {
20+
checkResolveDirect("I add 5 and 6")
21+
}
22+
}

example-stepdefs-lib/build.gradle

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
plugins {
2+
id 'scala'
3+
id 'maven-publish'
4+
}
5+
6+
7+
group 'com.github.vbmacher.cucumber'
8+
version '1.0.0'
9+
10+
dependencies {
11+
implementation libs.scala
12+
implementation(libs.cucumberScala) {
13+
exclude group: 'org.scala-lang', module: 'scala-library'
14+
}
15+
}
16+
17+
java {
18+
withJavadocJar()
19+
withSourcesJar()
20+
}
21+
22+
repositories {
23+
mavenLocal()
24+
mavenCentral()
25+
}
26+
27+
28+
publishing {
29+
publications {
30+
maven(MavenPublication) {
31+
from components.java
32+
}
33+
}
34+
}
35+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package cucumbersteps
2+
3+
import io.cucumber.scala.{EN, ScalaDsl}
4+
5+
class StepDefinitions extends ScalaDsl with EN {
6+
7+
When("""^I add (\d+) and (\d+)$"""){ (arg1: Double, arg2: Double) =>
8+
println(s"Adding $arg1 and $arg2")
9+
}
10+
11+
When("I sub (\\d+)" + " and " + "(\\d+)") {
12+
(arg1: Double, arg2: Double) =>
13+
println(s"Sub $arg1 and $arg2")
14+
}
15+
16+
When("I div " + (5 + 5) + " by " + (10 - 8)) {
17+
println(s"Div 10 bt 2")
18+
}
19+
}

settings.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ rootProject.name = 'intellij-cucumber-scala'
22

33
include 'cucumber-scala'
44
include 'example'
5+
include 'example-stepdefs-lib'
6+

0 commit comments

Comments
 (0)