SwiftLint/Tests/SwiftLintFrameworkTests/DisableAllTests.swift

158 lines
5.7 KiB
Swift

import SwiftLintFramework
import XCTest
class DisableAllTests: XCTestCase {
/// Example violations. Could be replaced with other single violations.
private let violatingPhrases = [
Example("let r = 0"), // Violates identifier_name
Example(#"let myString:String = """#), // Violates colon_whitespace
Example("// TODO: Some todo") // Violates todo
]
// MARK: Violating Phrase
/// Tests whether example violating phrases trigger when not applying disable rule
func testViolatingPhrase() {
for violatingPhrase in violatingPhrases {
XCTAssertEqual(
violations(violatingPhrase.with(code: violatingPhrase.code + "\n")).count,
1,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
// MARK: Enable / Disable Base
/// Tests whether swiftlint:disable all protects properly
func testDisableAll() {
for violatingPhrase in violatingPhrases {
let protectedPhrase = violatingPhrase.with(code: "// swiftlint:disable all\n" + violatingPhrase.code)
XCTAssertEqual(
violations(protectedPhrase).count,
0,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
/// Tests whether swiftlint:enable all unprotects properly
func testEnableAll() {
for violatingPhrase in violatingPhrases {
let unprotectedPhrase = violatingPhrase.with(code: """
// swiftlint:disable all
\(violatingPhrase.code)
// swiftlint:enable all
\(violatingPhrase.code)\n
""")
XCTAssertEqual(
violations(unprotectedPhrase).count,
1,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
// MARK: Enable / Disable Previous
/// Tests whether swiftlint:disable:previous all protects properly
func testDisableAllPrevious() {
for violatingPhrase in violatingPhrases {
let protectedPhrase = violatingPhrase
.with(code: """
\(violatingPhrase.code)
// swiftlint:disable:previous all\n
""")
XCTAssertEqual(
violations(protectedPhrase).count,
0,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
/// Tests whether swiftlint:enable:previous all unprotects properly
func testEnableAllPrevious() {
for violatingPhrase in violatingPhrases {
let unprotectedPhrase = violatingPhrase.with(code: """
// swiftlint:disable all
\(violatingPhrase.code)
\(violatingPhrase.code)
// swiftlint:enable:previous all\n
""")
XCTAssertEqual(
violations(unprotectedPhrase).count,
1,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
// MARK: Enable / Disable Next
/// Tests whether swiftlint:disable:next all protects properly
func testDisableAllNext() {
for violatingPhrase in violatingPhrases {
let protectedPhrase = violatingPhrase.with(code: "// swiftlint:disable:next all\n" + violatingPhrase.code)
XCTAssertEqual(
violations(protectedPhrase).count,
0,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
/// Tests whether swiftlint:enable:next all unprotects properly
func testEnableAllNext() {
for violatingPhrase in violatingPhrases {
let unprotectedPhrase = violatingPhrase.with(code: """
// swiftlint:disable all
\(violatingPhrase.code)
// swiftlint:enable:next all
\(violatingPhrase.code)\n
""")
XCTAssertEqual(
violations(unprotectedPhrase).count,
1,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
// MARK: Enable / Disable This
/// Tests whether swiftlint:disable:this all protects properly
func testDisableAllThis() {
for violatingPhrase in violatingPhrases {
let rawViolatingPhrase = violatingPhrase.code.replacingOccurrences(of: "\n", with: "")
let protectedPhrase = violatingPhrase.with(code: rawViolatingPhrase + "// swiftlint:disable:this all\n")
XCTAssertEqual(
violations(protectedPhrase).count,
0,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
/// Tests whether swiftlint:enable:next all unprotects properly
func testEnableAllThis() {
for violatingPhrase in violatingPhrases {
let rawViolatingPhrase = violatingPhrase.code.replacingOccurrences(of: "\n", with: "")
let unprotectedPhrase = violatingPhrase.with(code: """
// swiftlint:disable all
\(violatingPhrase.code)
\(rawViolatingPhrase)// swiftlint:enable:this all\n"
""")
XCTAssertEqual(
violations(unprotectedPhrase).count,
1,
#function,
file: violatingPhrase.file,
line: violatingPhrase.line)
}
}
}