Skip to content

Commit

Permalink
equatable to string
Browse files Browse the repository at this point in the history
  • Loading branch information
luoxiu committed Nov 4, 2018
1 parent d828d31 commit 2d30ee7
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 7 deletions.
22 changes: 22 additions & 0 deletions Sources/Crayon/TerminalString.swift
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,25 @@ extension TerminalString: CustomStringConvertible, CustomDebugStringConvertible
return raw
}
}

extension TerminalString: Hashable {

public var hashValue: Int {
return raw.hashValue
}

public static func == (lhs: TerminalString, rhs: TerminalString) -> Bool {
return lhs.raw == rhs.raw
}
}

extension TerminalString {

public static func == (lhs: String, rhs: TerminalString) -> Bool {
return lhs == rhs.raw
}

public static func == (lhs: TerminalString, rhs: String) -> Bool {
return lhs.raw == rhs
}
}
14 changes: 7 additions & 7 deletions Tests/CrayonTests/CrayonTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@ import XCTest

final class CrayonTests: XCTestCase {
func testCrayon() {
XCTAssertEqual(crayon.underline.on("foo").raw, "\u{001B}[4mfoo\u{001B}[24m")
XCTAssertEqual(crayon.red.on("foo").raw, "\u{001B}[31mfoo\u{001B}[39m");
XCTAssertEqual(crayon.bgRed.on("foo").raw, "\u{001B}[41mfoo\u{001B}[49m");
XCTAssert(crayon.underline.on("foo") == "\u{001B}[4mfoo\u{001B}[24m")
XCTAssert(crayon.red.on("foo").raw == "\u{001B}[31mfoo\u{001B}[39m");
XCTAssert(crayon.bgRed.on("foo").raw == "\u{001B}[41mfoo\u{001B}[49m");

XCTAssertEqual(crayon.red.bgGreen.underline.on("foo").raw, "\u{001B}[4m\u{001B}[31m\u{001B}[42mfoo\u{001B}[24m\u{001B}[39m\u{001B}[49m")
XCTAssertEqual(crayon.underline.red.bgGreen.on("foo").raw, "\u{001B}[4m\u{001B}[31m\u{001B}[42mfoo\u{001B}[24m\u{001B}[39m\u{001B}[49m");
XCTAssert(crayon.red.bgGreen.underline.on("foo").raw == "\u{001B}[4m\u{001B}[31m\u{001B}[42mfoo\u{001B}[24m\u{001B}[39m\u{001B}[49m")
XCTAssert(crayon.underline.red.bgGreen.on("foo").raw == "\u{001B}[4m\u{001B}[31m\u{001B}[42mfoo\u{001B}[24m\u{001B}[39m\u{001B}[49m");

XCTAssertEqual(cy.red.on("foo", cy.underline.bgBlue.on("bar"), "!").raw, "\u{001B}[31mfoo\u{001B}[4m\u{001B}[44mbar\u{001B}[24m\u{001B}[49m!\u{001B}[39m")
XCTAssert(cy.red.on("foo", cy.underline.bgBlue.on("bar"), "!").raw == "\u{001B}[31mfoo\u{001B}[4m\u{001B}[44mbar\u{001B}[24m\u{001B}[49m!\u{001B}[39m")

let nest = cy.red.on("a" + cy.yellow.on("b" + cy.green.on("c") + "b") + "c")
XCTAssertEqual(nest.raw, "\u{001B}[31ma\u{001B}[33mb\u{001B}[32mc\u{001B}[39mb\u{001B}[39mc\u{001B}[39m")
XCTAssert(nest.raw == "\u{001B}[31ma\u{001B}[33mb\u{001B}[32mc\u{001B}[39mb\u{001B}[39mc\u{001B}[39m")
}

static var allTests = [
Expand Down

0 comments on commit 2d30ee7

Please sign in to comment.