Skip to content

Commit 232a4aa

Browse files
committed
Fix to test indentation and prepending leading trivia
1 parent 7b0e51d commit 232a4aa

File tree

6 files changed

+105
-65
lines changed

6 files changed

+105
-65
lines changed

Tests/SwiftSyntaxBuilderTest/ImportTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@ import SwiftSyntax
55

66
final class ImportTests: XCTestCase {
77
func testImport() {
8-
let format = Format(indentWidth: 2).indented()
8+
let leadingTrivia = Trivia.garbageText("")
99

1010
let testCases: [UInt: (Import, String)] = [
1111
#line: (Import("SwiftSyntax"),
12-
" import SwiftSyntax"),
12+
"import SwiftSyntax"),
1313
]
1414

1515
for (line, testCase) in testCases {
1616
let (builder, expected) = testCase
17-
let syntax = builder.buildSyntax(format: format, leadingTrivia: .zero)
17+
let syntax = builder.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
1818

1919
var text = ""
2020
syntax.write(to: &text)

Tests/SwiftSyntaxBuilderTest/IntegerLiteralTests.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ import SwiftSyntax
44
@testable import SwiftSyntaxBuilder
55

66
final class IntegerLiteralTests: XCTestCase {
7-
let format = Format(indentWidth: 2).indented()
8-
97
func testIntegerLiteral() {
8+
let leadingTrivia = Trivia.garbageText("")
9+
1010
let testCases: [UInt: (IntegerLiteral, String)] = [
11-
#line: (IntegerLiteral(123), "123"),
12-
#line: (IntegerLiteral(-123), "-123"),
13-
#line: (123, "123"),
14-
#line: (-123, "-123"),
11+
#line: (IntegerLiteral(123), "123"),
12+
#line: (IntegerLiteral(-123), "-123"),
13+
#line: (123, "123"),
14+
#line: (-123, "-123"),
1515
]
1616

1717
for (line, testCase) in testCases {
1818
let (builder, expected) = testCase
19-
let syntax = builder.buildSyntax(format: format, leadingTrivia: .zero)
19+
let syntax = builder.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
2020

2121
var text = ""
2222
syntax.write(to: &text)

Tests/SwiftSyntaxBuilderTest/SourceFileTests.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import SwiftSyntax
44
@testable import SwiftSyntaxBuilder
55

66
final class SourceFileTests: XCTestCase {
7-
let format = Format(indentWidth: 2).indented()
8-
97
func testSourceFile() {
8+
let leadingTrivia = Trivia.garbageText("")
9+
1010
let sourceFile = SourceFile {
1111
Import("SwiftSyntax")
1212

@@ -15,15 +15,15 @@ final class SourceFileTests: XCTestCase {
1515
}
1616
}
1717

18-
let syntax = sourceFile.buildSyntax(format: format, leadingTrivia: .zero)
18+
let syntax = sourceFile.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
1919

2020
var text = ""
2121
syntax.write(to: &text)
2222
XCTAssertEqual(text, """
23-
import SwiftSyntax
24-
struct ExampleStruct {
23+
import SwiftSyntax
24+
struct ExampleStruct {
2525
let syntax: Syntax
26-
}
26+
}
2727
""")
2828
}
2929
}

Tests/SwiftSyntaxBuilderTest/StringLiteralTests.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ import SwiftSyntax
44
@testable import SwiftSyntaxBuilder
55

66
final class StringLiteralTests: XCTestCase {
7-
let format = Format(indentWidth: 2).indented()
8-
97
func testStringLiteral() {
8+
let leadingTrivia = Trivia.garbageText("")
9+
1010
let testCases: [UInt: (StringLiteral, String)] = [
11-
#line: (StringLiteral(""), "\"\""),
12-
#line: (StringLiteral("asdf"), #""asdf""#),
13-
#line: ("", "\"\""),
14-
#line: ("asdf", #""asdf""#),
11+
#line: (StringLiteral(""), #"␣"""#),
12+
#line: (StringLiteral("asdf"), #""asdf""#),
13+
#line: ("", #"␣"""#),
14+
#line: ("asdf", #""asdf""#),
1515
]
1616

1717
for (line, testCase) in testCases {
1818
let (builder, expected) = testCase
19-
let syntax = builder.buildSyntax(format: format, leadingTrivia: .zero)
19+
let syntax = builder.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
2020

2121
var text = ""
2222
syntax.write(to: &text)

Tests/SwiftSyntaxBuilderTest/StructTests.swift

Lines changed: 70 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,76 @@ import SwiftSyntax
44
@testable import SwiftSyntaxBuilder
55

66
final class StructTests: XCTestCase {
7-
let format = Format(indentWidth: 2).indented()
8-
9-
func testStruct() {
10-
let testCases: [UInt: (Struct, String)] = [
11-
#line: (
12-
Struct("TestStruct"),
13-
"""
14-
struct TestStruct {
15-
}
16-
"""
17-
),
18-
19-
#line: (
20-
Struct("TestStruct") {
21-
Let("name", of: "String")
22-
},
23-
"""
24-
struct TestStruct {
25-
let name: String
26-
}
27-
"""
28-
),
29-
]
30-
31-
for (line, testCase) in testCases {
32-
let (builder, expected) = testCase
33-
let syntax = builder.buildSyntax(format: format, leadingTrivia: .zero)
34-
35-
var text = ""
36-
syntax.write(to: &text)
37-
38-
XCTAssertEqual(text, expected, line: line)
7+
func testEmptyStruct() {
8+
let leadingTrivia = Trivia.garbageText("")
9+
10+
let buildable = Struct("TestStruct")
11+
let syntax = buildable.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
12+
13+
var text = ""
14+
syntax.write(to: &text)
15+
16+
XCTAssertEqual(text, """
17+
␣struct TestStruct {
18+
}
19+
""")
20+
}
21+
22+
func testStructWithMember() {
23+
let leadingTrivia = Trivia.garbageText("")
24+
25+
let buildable = Struct("TestStruct") {
26+
Let("member", of: "String")
27+
}
28+
let syntax = buildable.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
29+
30+
var text = ""
31+
syntax.write(to: &text)
32+
33+
XCTAssertEqual(text, """
34+
␣struct TestStruct {
35+
let member: String
3936
}
37+
""")
38+
}
39+
40+
func testNestedStruct() {
41+
let leadingTrivia = Trivia.garbageText("")
42+
43+
let buildable = Struct("TestStruct") {
44+
Struct("NestedStruct") {
45+
Let("member", of: "String")
46+
}
47+
}
48+
let syntax = buildable.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
49+
50+
var text = ""
51+
syntax.write(to: &text)
52+
53+
XCTAssertEqual(text, """
54+
␣struct TestStruct {
55+
struct NestedStruct {
56+
let member: String
57+
}
58+
}
59+
""")
60+
}
61+
62+
func testStructWithIndent() {
63+
let format = Format().indented()
64+
65+
let buildable = Struct("TestStruct") {
66+
Let("member", of: "String")
67+
}
68+
let syntax = buildable.buildSyntax(format: format, leadingTrivia: format.makeIndent())
69+
70+
var text = ""
71+
syntax.write(to: &text)
72+
73+
XCTAssertEqual(text, """
74+
struct TestStruct {
75+
let member: String
76+
}
77+
""")
4078
}
4179
}

Tests/SwiftSyntaxBuilderTest/VariableTests.swift

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@ import SwiftSyntax
44
@testable import SwiftSyntaxBuilder
55

66
final class VariableTests: XCTestCase {
7-
let format = Format(indentWidth: 2).indented()
8-
97
func testLet() {
8+
let leadingTrivia = Trivia.garbageText("")
9+
1010
let testCases: [UInt: (Let, String)] = [
1111
#line: (Let("str", of: "String"),
12-
#" let str: String"#),
12+
#"let str: String"#),
1313
#line: (Let("str", of: "String", value: StringLiteral("asdf")),
14-
#" let str: String = "asdf""#),
14+
#"let str: String = "asdf""#),
1515
#line: (Let("num", of: "Int", value: IntegerLiteral(123)),
16-
#" let num: Int = 123"#),
16+
#"let num: Int = 123"#),
1717
]
1818

1919
for (line, testCase) in testCases {
2020
let (builder, expected) = testCase
21-
let syntax = builder.buildSyntax(format: format, leadingTrivia: .zero)
21+
let syntax = builder.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
2222

2323
var text = ""
2424
syntax.write(to: &text)
@@ -28,18 +28,20 @@ final class VariableTests: XCTestCase {
2828
}
2929

3030
func testVar() {
31+
let leadingTrivia = Trivia.garbageText("")
32+
3133
let testCases: [UInt: (Var, String)] = [
3234
#line: (Var("str", of: "String"),
33-
#" var str: String"#),
35+
#"var str: String"#),
3436
#line: (Var("str", of: "String", value: StringLiteral("asdf")),
35-
#" var str: String = "asdf""#),
37+
#"var str: String = "asdf""#),
3638
#line: (Var("num", of: "Int", value: IntegerLiteral(123)),
37-
#" var num: Int = 123"#),
39+
#"var num: Int = 123"#),
3840
]
3941

4042
for (line, testCase) in testCases {
4143
let (builder, expected) = testCase
42-
let syntax = builder.buildSyntax(format: format, leadingTrivia: .zero)
44+
let syntax = builder.buildSyntax(format: Format(), leadingTrivia: leadingTrivia)
4345

4446
var text = ""
4547
syntax.write(to: &text)

0 commit comments

Comments
 (0)