mirror of
https://github.com/realm/SwiftLint.git
synced 2026-06-06 20:18:40 +00:00
Add tests for ObjectLiteral rule with config
This commit is contained in:
committed by
Cihat Gündüz
parent
ad03a2f2d0
commit
028d2b98a3
@@ -82,6 +82,7 @@
|
||||
78F032461D7C877E00BE709A /* OverriddenSuperCallRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78F032441D7C877800BE709A /* OverriddenSuperCallRule.swift */; };
|
||||
78F032481D7D614300BE709A /* OverridenSuperCallConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78F032471D7D614300BE709A /* OverridenSuperCallConfiguration.swift */; };
|
||||
7C0C2E7A1D2866CB0076435A /* ExplicitInitRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C0C2E791D2866CB0076435A /* ExplicitInitRule.swift */; };
|
||||
825F19D11EEFF19700969EF1 /* ObjectLiteralRuleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 825F19D01EEFF19700969EF1 /* ObjectLiteralRuleTests.swift */; };
|
||||
83894F221B0C928A006214E1 /* RulesCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83894F211B0C928A006214E1 /* RulesCommand.swift */; };
|
||||
83D71E281B131ECE000395DE /* RuleDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83D71E261B131EB5000395DE /* RuleDescription.swift */; };
|
||||
85DA81321D6B471000951BC4 /* MarkRule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 856651A61D6B395F005E6B29 /* MarkRule.swift */; };
|
||||
@@ -363,6 +364,7 @@
|
||||
78F032441D7C877800BE709A /* OverriddenSuperCallRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OverriddenSuperCallRule.swift; sourceTree = "<group>"; };
|
||||
78F032471D7D614300BE709A /* OverridenSuperCallConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OverridenSuperCallConfiguration.swift; sourceTree = "<group>"; };
|
||||
7C0C2E791D2866CB0076435A /* ExplicitInitRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExplicitInitRule.swift; sourceTree = "<group>"; };
|
||||
825F19D01EEFF19700969EF1 /* ObjectLiteralRuleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObjectLiteralRuleTests.swift; sourceTree = "<group>"; };
|
||||
83894F211B0C928A006214E1 /* RulesCommand.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RulesCommand.swift; sourceTree = "<group>"; };
|
||||
83D71E261B131EB5000395DE /* RuleDescription.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RuleDescription.swift; sourceTree = "<group>"; };
|
||||
856651A61D6B395F005E6B29 /* MarkRule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkRule.swift; sourceTree = "<group>"; };
|
||||
@@ -800,6 +802,7 @@
|
||||
3B63D46E1E1F09DF0057BE35 /* LineLengthRuleTests.swift */,
|
||||
D4C27BFF1E12DFF500DF713E /* LinterCacheTests.swift */,
|
||||
D4CA758E1E2DEEA500A40E8A /* NumberSeparatorRuleTests.swift */,
|
||||
825F19D01EEFF19700969EF1 /* ObjectLiteralRuleTests.swift */,
|
||||
E81ADD711ED5ED9D000CD451 /* RegionTests.swift */,
|
||||
E86396C61BADAFE6002C9E88 /* ReporterTests.swift */,
|
||||
3BCC04D31C502BAB006073C3 /* RuleConfigurationTests.swift */,
|
||||
@@ -1426,6 +1429,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
825F19D11EEFF19700969EF1 /* ObjectLiteralRuleTests.swift in Sources */,
|
||||
3B12C9C31C320A53000B423F /* Yaml+SwiftLintTests.swift in Sources */,
|
||||
E832F10D1B17E725003F265F /* IntegrationTests.swift in Sources */,
|
||||
D4C27C001E12DFF500DF713E /* LinterCacheTests.swift in Sources */,
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
//
|
||||
// ObjectLiteralRuleTests.swift
|
||||
// SwiftLint
|
||||
//
|
||||
// Created by Cihat Gündüz on 06/13/17.
|
||||
// Copyright © 2017 Realm. All rights reserved.
|
||||
//
|
||||
|
||||
import SwiftLintFramework
|
||||
import XCTest
|
||||
|
||||
class ObjectLiteralRuleTests: XCTestCase {
|
||||
// MARK: - Instance Properties
|
||||
private let imageLiteralTriggeringExamples = ["", ".init"].flatMap { (method: String) -> [String] in
|
||||
["UI", "NS"].flatMap { (prefix: String) -> [String] in
|
||||
[
|
||||
"let image = ↓\(prefix)Image\(method)(named: \"foo\")"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private let colorLiteralTriggeringExamples = ["", ".init"].flatMap { (method: String) -> [String] in
|
||||
["UI", "NS"].flatMap { (prefix: String) -> [String] in
|
||||
[
|
||||
"let color = ↓\(prefix)Color\(method)(red: 0.3, green: 0.3, blue: 0.3, alpha: 1)",
|
||||
"let color = ↓\(prefix)Color\(method)(red: 100 / 255.0, green: 50 / 255.0, blue: 0, alpha: 1)",
|
||||
"let color = ↓\(prefix)Color\(method)(white: 0.5, alpha: 1)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
private var allTriggeringExamples: [String] {
|
||||
return imageLiteralTriggeringExamples + colorLiteralTriggeringExamples
|
||||
}
|
||||
|
||||
// MARK: - Test Methods
|
||||
func testObjectLiteralWithDefaultConfiguration() {
|
||||
verifyRule(ObjectLiteralRule.description)
|
||||
}
|
||||
|
||||
// swiftlint:disable:next function_body_length
|
||||
func testObjectLiteralWithImageLiteral() {
|
||||
// Verify ObjectLiteral rule for when image_literal is true.
|
||||
let baseDescription = ObjectLiteralRule.description
|
||||
|
||||
let description = RuleDescription(
|
||||
identifier: baseDescription.identifier,
|
||||
name: baseDescription.name,
|
||||
description: baseDescription.description,
|
||||
nonTriggeringExamples: baseDescription.nonTriggeringExamples + colorLiteralTriggeringExamples,
|
||||
triggeringExamples: imageLiteralTriggeringExamples
|
||||
)
|
||||
|
||||
verifyRule(description, ruleConfiguration: ["image_literal": true, "color_literal": false])
|
||||
}
|
||||
|
||||
// swiftlint:disable:next function_body_length
|
||||
func testObjectLiteralWithColorLiteral() {
|
||||
// Verify ObjectLiteral rule for when color_literal is true.
|
||||
let baseDescription = ObjectLiteralRule.description
|
||||
|
||||
let description = RuleDescription(
|
||||
identifier: baseDescription.identifier,
|
||||
name: baseDescription.name,
|
||||
description: baseDescription.description,
|
||||
nonTriggeringExamples: baseDescription.nonTriggeringExamples + imageLiteralTriggeringExamples,
|
||||
triggeringExamples: colorLiteralTriggeringExamples
|
||||
)
|
||||
|
||||
verifyRule(description, ruleConfiguration: ["image_literal": false, "color_literal": true])
|
||||
}
|
||||
|
||||
// swiftlint:disable:next function_body_length
|
||||
func testObjectLiteralWithImageAndColorLiteral() {
|
||||
// Verify ObjectLiteral rule for when image_literal & color_literal are true.
|
||||
let baseDescription = ObjectLiteralRule.description
|
||||
|
||||
let description = RuleDescription(
|
||||
identifier: baseDescription.identifier,
|
||||
name: baseDescription.name,
|
||||
description: baseDescription.description,
|
||||
nonTriggeringExamples: baseDescription.nonTriggeringExamples,
|
||||
triggeringExamples: allTriggeringExamples
|
||||
)
|
||||
|
||||
verifyRule(description, ruleConfiguration: ["image_literal": true, "color_literal": true])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user