mirror of
https://github.com/realm/SwiftLint.git
synced 2026-06-06 20:18:40 +00:00
With the binding of configurations to their associated rule types "unknown configuration" errors can be made more specific mentioning also the rule's identifier in the printed message.
85 lines
3.2 KiB
Swift
85 lines
3.2 KiB
Swift
@testable import SwiftLintCore
|
|
import XCTest
|
|
|
|
class RegexConfigurationTests: SwiftLintTestCase {
|
|
func testShouldValidateIsTrueByDefault() {
|
|
let config = RegexConfiguration<RuleMock>(identifier: "example")
|
|
XCTAssertTrue(config.shouldValidate(filePath: "App/file.swift"))
|
|
}
|
|
|
|
func testShouldValidateWithSingleExluded() throws {
|
|
var config = RegexConfiguration<RuleMock>(identifier: "example")
|
|
try config.apply(configuration: [
|
|
"regex": "try!",
|
|
"excluded": "Tests/.*\\.swift"
|
|
])
|
|
|
|
XCTAssertFalse(config.shouldValidate(filePath: "Tests/file.swift"))
|
|
XCTAssertTrue(config.shouldValidate(filePath: "App/file.swift"))
|
|
}
|
|
|
|
func testShouldValidateWithArrayExluded() throws {
|
|
var config = RegexConfiguration<RuleMock>(identifier: "example")
|
|
try config.apply(configuration: [
|
|
"regex": "try!",
|
|
"excluded": [
|
|
"^Tests/.*\\.swift",
|
|
"^MyFramework/Tests/.*\\.swift"
|
|
] as Any
|
|
])
|
|
|
|
XCTAssertFalse(config.shouldValidate(filePath: "Tests/file.swift"))
|
|
XCTAssertFalse(config.shouldValidate(filePath: "MyFramework/Tests/file.swift"))
|
|
XCTAssertTrue(config.shouldValidate(filePath: "App/file.swift"))
|
|
}
|
|
|
|
func testShouldValidateWithSingleIncluded() throws {
|
|
var config = RegexConfiguration<RuleMock>(identifier: "example")
|
|
try config.apply(configuration: [
|
|
"regex": "try!",
|
|
"included": "App/.*\\.swift"
|
|
])
|
|
|
|
XCTAssertFalse(config.shouldValidate(filePath: "Tests/file.swift"))
|
|
XCTAssertFalse(config.shouldValidate(filePath: "MyFramework/Tests/file.swift"))
|
|
XCTAssertTrue(config.shouldValidate(filePath: "App/file.swift"))
|
|
}
|
|
|
|
func testShouldValidateWithArrayIncluded() throws {
|
|
var config = RegexConfiguration<RuleMock>(identifier: "example")
|
|
try config.apply(configuration: [
|
|
"regex": "try!",
|
|
"included": [
|
|
"App/.*\\.swift",
|
|
"MyFramework/.*\\.swift"
|
|
] as Any
|
|
])
|
|
|
|
XCTAssertFalse(config.shouldValidate(filePath: "Tests/file.swift"))
|
|
XCTAssertTrue(config.shouldValidate(filePath: "App/file.swift"))
|
|
XCTAssertTrue(config.shouldValidate(filePath: "MyFramework/file.swift"))
|
|
}
|
|
|
|
func testShouldValidateWithIncludedAndExcluded() throws {
|
|
var config = RegexConfiguration<RuleMock>(identifier: "example")
|
|
try config.apply(configuration: [
|
|
"regex": "try!",
|
|
"included": [
|
|
"App/.*\\.swift",
|
|
"MyFramework/.*\\.swift"
|
|
] as Any,
|
|
"excluded": [
|
|
"Tests/.*\\.swift",
|
|
"App/Fixtures/.*\\.swift"
|
|
] as Any
|
|
])
|
|
|
|
XCTAssertTrue(config.shouldValidate(filePath: "App/file.swift"))
|
|
XCTAssertTrue(config.shouldValidate(filePath: "MyFramework/file.swift"))
|
|
|
|
XCTAssertFalse(config.shouldValidate(filePath: "App/Fixtures/file.swift"))
|
|
XCTAssertFalse(config.shouldValidate(filePath: "Tests/file.swift"))
|
|
XCTAssertFalse(config.shouldValidate(filePath: "MyFramework/Tests/file.swift"))
|
|
}
|
|
}
|