-
Notifications
You must be signed in to change notification settings - Fork 15
/
ApplicationNameExtractorSpec.swift
90 lines (72 loc) · 6.1 KB
/
ApplicationNameExtractorSpec.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//
// ApplicationNameExtractorSpec.swift
// FBSnapshotsViewer
//
// Created by Anton Domashnev on 05.06.17.
// Copyright © 2017 Anton Domashnev. All rights reserved.
//
import Quick
import Nimble
@testable import FBSnapshotsViewer
class XcodeApplicationNameExtractorSpec: QuickSpec {
override func spec() {
var extractor: XcodeApplicationNameExtractor!
beforeEach {
extractor = XcodeApplicationNameExtractor()
}
describe(".extractApplicationName") {
context("when unexpected log line is given") {
it("throws an error") {
expect { try extractor.extractApplicationName(from: ApplicationLogLine.kaleidoscopeCommandMessage(line: "ksdiff \"/Users/antondomashnev/Library/Developer/CoreSimulator/Devices/B1AC0517-7FC0-4B32-8543-9EC263071FE5/data/Containers/Data/Application/8EEE157C-41B9-47F8-8634-CF3D60962E19/tmp/FBSnapshotsViewerExampleTests/reference_testFail@2x.png\" \"/Users/antondomashnev/Library/Developer/CoreSimulator/Devices/B1AC0517-7FC0-4B32-8543-9EC263071FE5/data/Containers/Data/Application/8EEE157C-41B9-47F8-8634-CF3D60962E19/tmp/FBSnapshotsViewerExampleTests/failed_testFail@2x.png\"")) }.to(throwError())
expect { try extractor.extractApplicationName(from: ApplicationLogLine.kaleidoscopeCommandMessage(line: "2017-04-25 21:15:37.107 FBSnapshotsViewerExample[56034:787919] Reference image save at: /Users/antondomashnev/Work/FBSnapshotsViewerExample/FBSnapshotsViewerExampleTests/ReferenceImages_64/FBSnapshotsViewerExampleTests/testRecord@2x.png")) }.to(throwError())
expect { try extractor.extractApplicationName(from: ApplicationLogLine.fbReferenceImageDirMessage(line: "\"FB_REFERENCE_IMAGE_DIR\" = \"/Users/antondomashnev/Work/FBSnapshotsViewerExample/FBSnapshotsViewerExampleTests/ReferenceImages\";")) }.to(throwError())
expect { try extractor.extractApplicationName(from: ApplicationLogLine.unknown) }.to(throwError())
}
}
context("when applicationNameMessage log line given") {
context("with unexpected format") {
it("throws an error") {
expect { try extractor.extractApplicationName(from: ApplicationLogLine.applicationNameMessage(line: "XCInjectBundleInto = ")) }.to(throwError())
}
}
context("with expected format") {
it("extracts correct application name") {
let applicationName = try? extractor.extractApplicationName(from: ApplicationLogLine.applicationNameMessage(line: "XCInjectBundleInto = \"/Users/antondomashnev/Library/Developer/Xcode/DerivedData/FBSnapshotsViewerExample-eeuapqepwoebslcfqojhfzyfuhmp/Build/Products/Debug-iphonesimulator/FBSnapshotsViewerExample.app/FBSnapshotsViewerExample\";"))
expect(applicationName).to(equal("FBSnapshotsViewerExample"))
}
}
}
}
}
}
class AppCodeApplicationNameExtractorSpec: QuickSpec {
override func spec() {
var extractor: AppCodeApplicationNameExtractor!
beforeEach {
extractor = AppCodeApplicationNameExtractor()
}
describe(".extractApplicationName") {
context("when unexpected log line is given") {
it("throws an error") {
expect { try extractor.extractApplicationName(from: ApplicationLogLine.kaleidoscopeCommandMessage(line: "ksdiff \"/Users/antondomashnev/Library/Developer/CoreSimulator/Devices/B1AC0517-7FC0-4B32-8543-9EC263071FE5/data/Containers/Data/Application/8EEE157C-41B9-47F8-8634-CF3D60962E19/tmp/FBSnapshotsViewerExampleTests/reference_testFail@2x.png\" \"/Users/antondomashnev/Library/Developer/CoreSimulator/Devices/B1AC0517-7FC0-4B32-8543-9EC263071FE5/data/Containers/Data/Application/8EEE157C-41B9-47F8-8634-CF3D60962E19/tmp/FBSnapshotsViewerExampleTests/failed_testFail@2x.png\"")) }.to(throwError())
expect { try extractor.extractApplicationName(from: ApplicationLogLine.kaleidoscopeCommandMessage(line: "2017-04-25 21:15:37.107 FBSnapshotsViewerExample[56034:787919] Reference image save at: /Users/antondomashnev/Work/FBSnapshotsViewerExample/FBSnapshotsViewerExampleTests/ReferenceImages_64/FBSnapshotsViewerExampleTests/testRecord@2x.png")) }.to(throwError())
expect { try extractor.extractApplicationName(from: ApplicationLogLine.fbReferenceImageDirMessage(line: " <env name=\"FB_REFERENCE_IMAGE_DIR\" value=\"/Users/antondomashnev/Work/FBSnapshotsViewerExample/FBSnapshotsViewerExampleTests/ReferenceImages\"/>")) }.to(throwError())
expect { try extractor.extractApplicationName(from: ApplicationLogLine.unknown) }.to(throwError())
}
}
context("when applicationNameMessage log line given") {
context("with unexpected format") {
it("throws an error") {
expect { try extractor.extractApplicationName(from: ApplicationLogLine.applicationNameMessage(line: "<env name=\"FB_REFERENCE_IMAGE_DIR\" value=\"/Users/antondomashnev/Work/FBSnapshotsViewerExample/FBSnapshotsViewerExampleTests/ReferenceImages\"/>")) }.to(throwError())
}
}
context("with expected format") {
it("extracts correct application name") {
let applicationName = try? extractor.extractApplicationName(from: ApplicationLogLine.applicationNameMessage(line: "<config PASS_PARENT_ENVS_2=\"true\" PROJECT_NAME=\"FBSnapshotsViewerExample\" TARGET_NAME=\"FBSnapshotsViewerExampleTests\" CONFIG_NAME=\"Debug\" SCHEME_NAME=\"FBSnapshotsViewerExampleTests\" TEST_MODE=\"SUITE_TEST\" XCODE_SKIPPED_TESTS_HASH_CODE=\"0\" configId=\"OCUnitRunConfiguration\" name=\"FBSnapshotsViewerExampleTests\" target=\"iphonesimulatoriPhone_7_10.3_x86_64_1\">"))
expect(applicationName).to(equal("FBSnapshotsViewerExample"))
}
}
}
}
}
}