80 lines
1.4 KiB
Swift
80 lines
1.4 KiB
Swift
|
import SwiftSyntaxMacros
|
||
|
import SwiftSyntaxMacrosTestSupport
|
||
|
import XCTest
|
||
|
|
||
|
#if canImport(SupermanMacros)
|
||
|
import SupermanMacros
|
||
|
|
||
|
let testMacros: [String: Macro.Type] = [
|
||
|
"SuperFirst": SuperFirstMacro.self,
|
||
|
"SuperLast": SuperLastMacro.self,
|
||
|
]
|
||
|
|
||
|
final class QSLibsTests: XCTestCase {
|
||
|
func testSuperFirst() throws {
|
||
|
assertMacroExpansion("""
|
||
|
@SuperFirst
|
||
|
func function() {
|
||
|
print()
|
||
|
}
|
||
|
""",
|
||
|
expandedSource: """
|
||
|
func function() {
|
||
|
super.function()
|
||
|
print()
|
||
|
}
|
||
|
""",
|
||
|
macros: testMacros)
|
||
|
}
|
||
|
|
||
|
func testSuperLast() throws {
|
||
|
assertMacroExpansion("""
|
||
|
@SuperLast
|
||
|
func function() {
|
||
|
print()
|
||
|
}
|
||
|
""",
|
||
|
expandedSource: """
|
||
|
func function() {
|
||
|
print()
|
||
|
return super.function()
|
||
|
}
|
||
|
""",
|
||
|
macros: testMacros)
|
||
|
}
|
||
|
|
||
|
func testSuperFirstArgs() throws {
|
||
|
assertMacroExpansion("""
|
||
|
@SuperFirst
|
||
|
func function(_ b: Bool, i: Int, double d: Double) {
|
||
|
print()
|
||
|
}
|
||
|
""",
|
||
|
expandedSource: """
|
||
|
func function(_ b: Bool, i: Int, double d: Double) {
|
||
|
super.function(_ : b, i: i, double : d)
|
||
|
print()
|
||
|
}
|
||
|
""",
|
||
|
macros: testMacros)
|
||
|
}
|
||
|
|
||
|
func testSuperLastArgs() throws {
|
||
|
assertMacroExpansion("""
|
||
|
@SuperLast
|
||
|
func function(_ b: Bool, i: Int, double d: Double) {
|
||
|
print()
|
||
|
}
|
||
|
""",
|
||
|
expandedSource: """
|
||
|
func function(_ b: Bool, i: Int, double d: Double) {
|
||
|
print()
|
||
|
return super.function(_ : b, i: i, double : d)
|
||
|
}
|
||
|
""",
|
||
|
macros: testMacros)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif
|