mas/Tests/MasKitTests/Controllers/StoreSearchSpec.swift
Chris Araman 9904707152
🧹 Lint
2021-05-12 11:19:12 -07:00

51 lines
1.6 KiB
Swift

//
// StoreSearchSpec.swift
// MasKitTests
//
// Created by Ben Chatelain on 1/11/19.
// Copyright © 2019 mas-cli. All rights reserved.
//
import Nimble
import PromiseKit
import Quick
@testable import MasKit
/// Protocol minimal implementation
struct StoreSearchForTesting: StoreSearch {
func lookup(app _: Int) -> Promise<SearchResult?> {
.value(nil)
}
func search(for _: String) -> Promise<[SearchResult]> {
.value([])
}
}
public class StoreSearchSpec: QuickSpec {
override public func spec() {
let storeSearch = StoreSearchForTesting()
describe("url string") {
it("contains the app name") {
let appName = "myapp"
let urlString = storeSearch.searchURL(for: appName)?.absoluteString
expect(urlString) == "https://itunes.apple.com/search?media=software&entity=macSoftware&term=\(appName)"
}
it("contains the encoded app name") {
let appName = "My App"
let appNameEncoded = "My%20App"
let urlString = storeSearch.searchURL(for: appName)?.absoluteString
expect(urlString)
== "https://itunes.apple.com/search?media=software&entity=macSoftware&term=\(appNameEncoded)"
}
// Find a character that causes addingPercentEncoding(withAllowedCharacters to return nil
xit("is nil when app name cannot be url encoded") {
let appName = "`~!@#$%^&*()_+ 💩"
let urlString = storeSearch.searchURL(for: appName)?.absoluteString
expect(urlString).to(beNil())
}
}
}
}