chponk

Pomodoro like timer for Mac OS
git clone git://git.konyahin.xyz/chponk
Log | Files | Refs | README

chponkTests.swift (1373B)


      1 import XCTest
      2 import class Foundation.Bundle
      3 
      4 final class chponkTests: XCTestCase {
      5     func testExample() throws {
      6         // This is an example of a functional test case.
      7         // Use XCTAssert and related functions to verify your tests produce the correct
      8         // results.
      9 
     10         // Some of the APIs that we use below are available in macOS 10.13 and above.
     11         guard #available(macOS 10.13, *) else {
     12             return
     13         }
     14 
     15         let fooBinary = productsDirectory.appendingPathComponent("chponk")
     16 
     17         let process = Process()
     18         process.executableURL = fooBinary
     19 
     20         let pipe = Pipe()
     21         process.standardOutput = pipe
     22 
     23         try process.run()
     24         process.waitUntilExit()
     25 
     26         let data = pipe.fileHandleForReading.readDataToEndOfFile()
     27         let output = String(data: data, encoding: .utf8)
     28 
     29         XCTAssertEqual(output, "Hello, world!\n")
     30     }
     31 
     32     /// Returns path to the built products directory.
     33     var productsDirectory: URL {
     34       #if os(macOS)
     35         for bundle in Bundle.allBundles where bundle.bundlePath.hasSuffix(".xctest") {
     36             return bundle.bundleURL.deletingLastPathComponent()
     37         }
     38         fatalError("couldn't find the products directory")
     39       #else
     40         return Bundle.main.bundleURL
     41       #endif
     42     }
     43 
     44     static var allTests = [
     45         ("testExample", testExample),
     46     ]
     47 }