Skip to content

Commit 7bcd6b5

Browse files
committed
fix: location for anything other than a step was wrong
See #404
1 parent 669421a commit 7bcd6b5

24 files changed

+112
-80
lines changed

cucumber-scala/src/main/scala/io/cucumber/scala/AbstractGlueDefinition.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ trait AbstractGlueDefinition extends Located {
1515

1616
val location: StackTraceElement
1717

18-
lazy val sourceReference: SourceReference =
18+
private lazy val sourceReference: SourceReference =
1919
SourceReference.fromStackTraceElement(location)
2020

2121
override def getLocation(): String = {

cucumber-scala/src/main/scala/io/cucumber/scala/DataTableTypeDsl.scala

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.cucumber.scala
22

33
import scala.reflect.ClassTag
44

5-
private[scala] trait DataTableTypeDsl extends BaseScalaDsl {
5+
private[scala] trait DataTableTypeDsl extends BaseScalaDsl { self =>
66

77
/** Register a data table type.
88
*/
@@ -27,7 +27,12 @@ private[scala] trait DataTableTypeDsl extends BaseScalaDsl {
2727
body: DataTableEntryDefinitionBody[T]
2828
)(implicit ev: ClassTag[T]): Unit = {
2929
registry.registerDataTableType(
30-
ScalaDataTableEntryTypeDetails[T](replaceWithEmptyString, body, ev)
30+
ScalaDataTableEntryTypeDetails[T](
31+
replaceWithEmptyString,
32+
body,
33+
ev,
34+
Utils.frame(self)
35+
)
3136
)
3237
}
3338

@@ -38,7 +43,8 @@ private[scala] trait DataTableTypeDsl extends BaseScalaDsl {
3843
ScalaDataTableOptionalEntryTypeDetails[T](
3944
replaceWithEmptyString,
4045
body,
41-
ev
46+
ev,
47+
Utils.frame(self)
4248
)
4349
)
4450
}
@@ -47,7 +53,12 @@ private[scala] trait DataTableTypeDsl extends BaseScalaDsl {
4753
body: DataTableRowDefinitionBody[T]
4854
)(implicit ev: ClassTag[T]): Unit = {
4955
registry.registerDataTableType(
50-
ScalaDataTableRowTypeDetails[T](replaceWithEmptyString, body, ev)
56+
ScalaDataTableRowTypeDetails[T](
57+
replaceWithEmptyString,
58+
body,
59+
ev,
60+
Utils.frame(self)
61+
)
5162
)
5263
}
5364

@@ -58,7 +69,8 @@ private[scala] trait DataTableTypeDsl extends BaseScalaDsl {
5869
ScalaDataTableOptionalRowTypeDetails[T](
5970
replaceWithEmptyString,
6071
body,
61-
ev
72+
ev,
73+
Utils.frame(self)
6274
)
6375
)
6476
}
@@ -67,7 +79,12 @@ private[scala] trait DataTableTypeDsl extends BaseScalaDsl {
6779
body: DataTableCellDefinitionBody[T]
6880
)(implicit ev: ClassTag[T]): Unit = {
6981
registry.registerDataTableType(
70-
ScalaDataTableCellTypeDetails[T](replaceWithEmptyString, body, ev)
82+
ScalaDataTableCellTypeDetails[T](
83+
replaceWithEmptyString,
84+
body,
85+
ev,
86+
Utils.frame(self)
87+
)
7188
)
7289
}
7390

@@ -78,7 +95,8 @@ private[scala] trait DataTableTypeDsl extends BaseScalaDsl {
7895
ScalaDataTableOptionalCellTypeDetails[T](
7996
replaceWithEmptyString,
8097
body,
81-
ev
98+
ev,
99+
Utils.frame(self)
82100
)
83101
)
84102
}
@@ -87,7 +105,12 @@ private[scala] trait DataTableTypeDsl extends BaseScalaDsl {
87105
body: DataTableDefinitionBody[T]
88106
)(implicit ev: ClassTag[T]): Unit = {
89107
registry.registerDataTableType(
90-
ScalaDataTableTableTypeDetails[T](replaceWithEmptyString, body, ev)
108+
ScalaDataTableTableTypeDetails[T](
109+
replaceWithEmptyString,
110+
body,
111+
ev,
112+
Utils.frame(self)
113+
)
91114
)
92115
}
93116

cucumber-scala/src/main/scala/io/cucumber/scala/DefaultTransformerDsl.scala

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import io.cucumber.scala.Aliases.{
66
DefaultParameterTransformerBody
77
}
88

9-
private[scala] trait DefaultTransformerDsl extends BaseScalaDsl {
9+
private[scala] trait DefaultTransformerDsl extends BaseScalaDsl { self =>
1010

1111
/** Register default parameter type transformer.
1212
*
@@ -17,7 +17,7 @@ private[scala] trait DefaultTransformerDsl extends BaseScalaDsl {
1717
body: DefaultParameterTransformerBody
1818
): Unit = {
1919
registry.registerDefaultParameterTransformer(
20-
ScalaDefaultParameterTransformerDetails(body)
20+
ScalaDefaultParameterTransformerDetails(body, Utils.frame(self))
2121
)
2222
}
2323

@@ -52,7 +52,11 @@ private[scala] trait DefaultTransformerDsl extends BaseScalaDsl {
5252
replaceWithEmptyString: Seq[String]
5353
)(body: DefaultDataTableCellTransformerBody): Unit = {
5454
registry.registerDefaultDataTableCellTransformer(
55-
ScalaDefaultDataTableCellTransformerDetails(replaceWithEmptyString, body)
55+
ScalaDefaultDataTableCellTransformerDetails(
56+
replaceWithEmptyString,
57+
body,
58+
Utils.frame(self)
59+
)
5660
)
5761
}
5862

@@ -89,7 +93,11 @@ private[scala] trait DefaultTransformerDsl extends BaseScalaDsl {
8993
replaceWithEmptyString: Seq[String]
9094
)(body: DefaultDataTableEntryTransformerBody): Unit = {
9195
registry.registerDefaultDataTableEntryTransformer(
92-
ScalaDefaultDataTableEntryTransformerDetails(replaceWithEmptyString, body)
96+
ScalaDefaultDataTableEntryTransformerDetails(
97+
replaceWithEmptyString,
98+
body,
99+
Utils.frame(self)
100+
)
93101
)
94102
}
95103

cucumber-scala/src/main/scala/io/cucumber/scala/DocStringTypeDsl.scala

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.cucumber.scala
22

33
import io.cucumber.scala.Aliases.DocStringDefinitionBody
44

5-
private[scala] trait DocStringTypeDsl extends BaseScalaDsl {
5+
private[scala] trait DocStringTypeDsl extends BaseScalaDsl { self =>
66

77
/** Register doc string type.
88
*
@@ -18,7 +18,12 @@ private[scala] trait DocStringTypeDsl extends BaseScalaDsl {
1818
contentType: String
1919
)(body: DocStringDefinitionBody[T])(implicit ev: Stepable[T]): Unit = {
2020
registry.registerDocStringType(
21-
ScalaDocStringTypeDetails[T](contentType, body, ev.asJavaType)
21+
ScalaDocStringTypeDetails[T](
22+
contentType,
23+
body,
24+
ev.asJavaType,
25+
Utils.frame(self)
26+
)
2227
)
2328
}
2429

cucumber-scala/src/main/scala/io/cucumber/scala/ParameterTypeDsl.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.cucumber.scala
22

33
import scala.reflect.ClassTag
44

5-
private[scala] trait ParameterTypeDsl extends BaseScalaDsl {
5+
private[scala] trait ParameterTypeDsl extends BaseScalaDsl { self =>
66

77
/** Register parameter type.
88
*
@@ -748,7 +748,7 @@ private[scala] trait ParameterTypeDsl extends BaseScalaDsl {
748748
pf: PartialFunction[List[String], R]
749749
)(implicit tag: ClassTag[R]): Unit = {
750750
registry.registerParameterType(
751-
ScalaParameterTypeDetails[R](name, regex, pf, tag)
751+
ScalaParameterTypeDetails[R](name, regex, pf, tag, Utils.frame(self))
752752
)
753753
}
754754

cucumber-scala/src/main/scala/io/cucumber/scala/ScalaDataTableCellDefinition.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ import scala.annotation.nowarn
77

88
trait ScalaDataTableCellDefinition[T] extends ScalaDataTableTypeDefinition {
99

10-
val details: ScalaDataTableCellTypeDetails[T]
11-
12-
override val emptyPatterns: Seq[String] = details.emptyPatterns
13-
14-
override val location: StackTraceElement = new Exception().getStackTrace()(3)
10+
override val details: ScalaDataTableCellTypeDetails[T]
1511

1612
private val transformer: TableCellTransformer[T] = (cell: String) => {
1713
details.body.transform(replaceEmptyPatternsWithEmptyString(cell))

cucumber-scala/src/main/scala/io/cucumber/scala/ScalaDataTableDefinition.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ import scala.annotation.nowarn
77

88
trait ScalaDataTableDefinition[T] extends ScalaDataTableTypeDefinition {
99

10-
val details: ScalaDataTableTableTypeDetails[T]
11-
12-
override val emptyPatterns: Seq[String] = details.emptyPatterns
13-
14-
override val location: StackTraceElement = new Exception().getStackTrace()(3)
10+
override val details: ScalaDataTableTableTypeDetails[T]
1511

1612
private val transformer: TableTransformer[T] = (table: DataTable) => {
1713
details.body.transform(replaceEmptyPatternsWithEmptyString(table))

cucumber-scala/src/main/scala/io/cucumber/scala/ScalaDataTableEntryDefinition.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ import scala.jdk.CollectionConverters._
99

1010
trait ScalaDataTableEntryDefinition[T] extends ScalaDataTableTypeDefinition {
1111

12-
val details: ScalaDataTableEntryTypeDetails[T]
13-
14-
override val emptyPatterns: Seq[String] = details.emptyPatterns
15-
16-
override val location: StackTraceElement = new Exception().getStackTrace()(3)
12+
override val details: ScalaDataTableEntryTypeDetails[T]
1713

1814
private val transformer: TableEntryTransformer[T] =
1915
(entry: JavaMap[String, String]) => {

cucumber-scala/src/main/scala/io/cucumber/scala/ScalaDataTableOptionalCellDefinition.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@ import scala.annotation.nowarn
88
trait ScalaDataTableOptionalCellDefinition[T]
99
extends ScalaDataTableTypeDefinition {
1010

11-
val details: ScalaDataTableOptionalCellTypeDetails[T]
12-
13-
override val emptyPatterns: Seq[String] = details.emptyPatterns
14-
15-
override val location: StackTraceElement = new Exception().getStackTrace()(3)
11+
override val details: ScalaDataTableOptionalCellTypeDetails[T]
1612

1713
private val transformer: TableCellTransformer[T] = (cell: String) => {
1814
details.body.transform(Option(replaceEmptyPatternsWithEmptyString(cell)))

cucumber-scala/src/main/scala/io/cucumber/scala/ScalaDataTableOptionalEntryDefinition.scala

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ import scala.jdk.CollectionConverters._
1010
trait ScalaDataTableOptionalEntryDefinition[T]
1111
extends ScalaDataTableTypeDefinition {
1212

13-
val details: ScalaDataTableOptionalEntryTypeDetails[T]
14-
15-
override val emptyPatterns: Seq[String] = details.emptyPatterns
16-
17-
override val location: StackTraceElement = new Exception().getStackTrace()(3)
13+
override val details: ScalaDataTableOptionalEntryTypeDetails[T]
1814

1915
private val transformer: TableEntryTransformer[T] =
2016
(entry: JavaMap[String, String]) => {

0 commit comments

Comments
 (0)