CommandLineToolkit
48 строк · 1.3 Кб
1import FileSystem
2import Foundation
3import PathLib
4import TestHelpers
5import XCTest
6
7// swiftlint:disable multiple_closures_with_trailing_closure
8final class GlobPatternTests: XCTestCase {
9func test___any_file_anywhere() {
10assert {
11GlobPattern
12.rootingAt(.root)
13.concat("**/*")
14.value
15} equals: {
16"/**/*"
17}
18}
19
20func test___some_images() {
21assert {
22GlobPattern
23.rootingAt(AbsolutePath(components: ["Users", "username", "Pictures"]))
24.concat("/*.{jpg,png,tiff}")
25.value
26} equals: {
27"/Users/username/Pictures/*.{jpg,png,tiff}"
28}
29}
30
31func test___decoding() {
32assert {
33try JSONDecoder().decode(GlobPattern.self, from: Data("\"/path/to/**\"".utf8))
34} equals: {
35GlobPattern.rootingAt("/path/to").concat("/**")
36}
37}
38
39func test___decode_fails___when_glob_is_not_absolute() {
40assertThrows {
41try JSONDecoder().decode(GlobPattern.self, from: Data("\"some/path/**\"".utf8))
42}
43
44assertThrows {
45try JSONDecoder().decode(GlobPattern.self, from: Data("\"~/path/**\"".utf8))
46}
47}
48}
49