Skip to content

Commit ba4be9d

Browse files
committed
Merge remote-tracking branch 'origin/claude/create-claude-md-docs-TbEpZ' into claude/create-claude-md-docs-TbEpZ
2 parents 351ab6e + 9f48830 commit ba4be9d

4 files changed

Lines changed: 36 additions & 27 deletions

File tree

CLAUDE.md

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -158,21 +158,17 @@ Attributes on a function/method are numbered **within their own group**, not glo
158158

159159
| Group | Source array | Used for |
160160
|-------------------|---------------------------|-----------------------------------------------|
161-
| test data | `DATA_ATTRIBUTES` | Data providers for `#[Test]` methods |
161+
| test + data | `TEST_DATA_ATTRIBUTES` | `#[Test]` + data providers, numbered together |
162162
| inline | `TEST_INLINE_ATTRIBUTES` | Inline test cases (`#[TestInline]`) |
163163
| bench | `BENCH_ATTRIBUTES` | Benchmark data (`#[Bench]`) |
164164

165-
The `#[Test]` attribute itself is **not numbered** — it is a marker only. The method/function name already gets its own gutter line marker. `Test` IS included in `RUNNABLE_ATTRIBUTES` (it's runnable), but `getAttributeOrder` returns `-1` for it, and the line marker falls back to `getLocationInfo`.
166-
167-
The `#[Test]` attribute itself is **not numbered** — it is a marker only. The method/function name already gets its own gutter line marker.
168-
169165
Example for a function `foo` with multiple attributes:
170166
```
171-
#[Test] → type=test (no index, marker only)
172-
#[DataProvider(...)] → type=test, foo:0
173-
#[DataSet([...])] → type=test, foo:1
174-
#[DataZip(...)] → type=test, foo:2
175-
#[DataCross(...)] → type=test, foo:3
167+
#[Test] → type=test, foo:0
168+
#[DataProvider(...)] → type=test, foo:1
169+
#[DataSet([...])] → type=test, foo:2
170+
#[DataZip(...)] → type=test, foo:3
171+
#[DataCross(...)] → type=test, foo:4
176172
#[TestInline(...)] → type=inline, foo:0
177173
#[TestInline(...)] → type=inline, foo:1
178174
#[TestInline(...)] → type=inline, foo:2

src/main/kotlin/com/github/xepozz/testo/TestoClasses.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ object TestoClasses {
3333
val TEST_INLINE_ATTRIBUTES = arrayOf(
3434
TEST_INLINE,
3535
)
36+
val TEST_DATA_ATTRIBUTES = arrayOf(
37+
TEST,
38+
*DATA_ATTRIBUTES,
39+
)
3640
val BENCH_ATTRIBUTES = arrayOf(
3741
BENCH,
3842
)

src/main/kotlin/com/github/xepozz/testo/util/PsiUtil.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ object PsiUtil {
1414
)
1515

1616
val ATTRIBUTE_GROUPS: Array<Array<String>> = arrayOf(
17-
TestoClasses.DATA_ATTRIBUTES,
17+
TestoClasses.TEST_DATA_ATTRIBUTES,
1818
TestoClasses.TEST_INLINE_ATTRIBUTES,
1919
TestoClasses.BENCH_ATTRIBUTES,
2020
)

src/test/kotlin/com/github/xepozz/testo/PsiUtilTest.kt

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,34 @@ class PsiUtilTest : TestCase() {
3333

3434
// --- Attribute group tests ---
3535

36-
fun testGetAttributeGroup_dataProviderInDataGroup() {
36+
fun testGetAttributeGroup_testInTestDataGroup() {
37+
val group = PsiUtil.getAttributeGroup(TestoClasses.TEST)
38+
assertSame(TestoClasses.TEST_DATA_ATTRIBUTES, group)
39+
}
40+
41+
fun testGetAttributeGroup_dataProviderInTestDataGroup() {
3742
val group = PsiUtil.getAttributeGroup(TestoClasses.DATA_PROVIDER)
38-
assertSame(TestoClasses.DATA_ATTRIBUTES, group)
43+
assertSame(TestoClasses.TEST_DATA_ATTRIBUTES, group)
3944
}
4045

41-
fun testGetAttributeGroup_dataSetInDataGroup() {
46+
fun testGetAttributeGroup_dataSetInTestDataGroup() {
4247
val group = PsiUtil.getAttributeGroup(TestoClasses.DATA_SET)
43-
assertSame(TestoClasses.DATA_ATTRIBUTES, group)
48+
assertSame(TestoClasses.TEST_DATA_ATTRIBUTES, group)
4449
}
4550

46-
fun testGetAttributeGroup_dataUnionInDataGroup() {
51+
fun testGetAttributeGroup_dataUnionInTestDataGroup() {
4752
val group = PsiUtil.getAttributeGroup(TestoClasses.DATA_UNION)
48-
assertSame(TestoClasses.DATA_ATTRIBUTES, group)
53+
assertSame(TestoClasses.TEST_DATA_ATTRIBUTES, group)
4954
}
5055

51-
fun testGetAttributeGroup_dataCrossInDataGroup() {
56+
fun testGetAttributeGroup_dataCrossInTestDataGroup() {
5257
val group = PsiUtil.getAttributeGroup(TestoClasses.DATA_CROSS)
53-
assertSame(TestoClasses.DATA_ATTRIBUTES, group)
58+
assertSame(TestoClasses.TEST_DATA_ATTRIBUTES, group)
5459
}
5560

56-
fun testGetAttributeGroup_dataZipInDataGroup() {
61+
fun testGetAttributeGroup_dataZipInTestDataGroup() {
5762
val group = PsiUtil.getAttributeGroup(TestoClasses.DATA_ZIP)
58-
assertSame(TestoClasses.DATA_ATTRIBUTES, group)
63+
assertSame(TestoClasses.TEST_DATA_ATTRIBUTES, group)
5964
}
6065

6166
fun testGetAttributeGroup_testInlineInInlineGroup() {
@@ -68,11 +73,6 @@ class PsiUtilTest : TestCase() {
6873
assertSame(TestoClasses.BENCH_ATTRIBUTES, group)
6974
}
7075

71-
fun testGetAttributeGroup_testHasNoGroup() {
72-
val group = PsiUtil.getAttributeGroup(TestoClasses.TEST)
73-
assertNull("Test attribute is a marker, not numbered", group)
74-
}
75-
7676
fun testGetAttributeGroup_nullReturnsNull() {
7777
assertNull(PsiUtil.getAttributeGroup(null))
7878
}
@@ -102,9 +102,18 @@ class PsiUtilTest : TestCase() {
102102

103103
fun testAttributeGroups_totalCount() {
104104
val totalGrouped = PsiUtil.ATTRIBUTE_GROUPS.sumOf { it.size }
105-
val expectedGrouped = TestoClasses.DATA_ATTRIBUTES.size +
105+
val expectedGrouped = TestoClasses.TEST_DATA_ATTRIBUTES.size +
106106
TestoClasses.TEST_INLINE_ATTRIBUTES.size +
107107
TestoClasses.BENCH_ATTRIBUTES.size
108108
assertEquals(expectedGrouped, totalGrouped)
109109
}
110+
111+
fun testTestDataAttributes_containsTestAndAllData() {
112+
val testData = TestoClasses.TEST_DATA_ATTRIBUTES.toSet()
113+
assertTrue(testData.contains(TestoClasses.TEST))
114+
for (attr in TestoClasses.DATA_ATTRIBUTES) {
115+
assertTrue("Missing: $attr", testData.contains(attr))
116+
}
117+
assertEquals(1 + TestoClasses.DATA_ATTRIBUTES.size, TestoClasses.TEST_DATA_ATTRIBUTES.size)
118+
}
110119
}

0 commit comments

Comments
 (0)