diff --git a/Sources/ScreamURITemplate/VariableValue.swift b/Sources/ScreamURITemplate/VariableValue.swift index e54cedf..87447d5 100644 --- a/Sources/ScreamURITemplate/VariableValue.swift +++ b/Sources/ScreamURITemplate/VariableValue.swift @@ -50,7 +50,7 @@ extension KeyValuePairs: VariableValue { extension [String: StringVariableValue]: VariableValue { public func asTypedVariableValue() -> TypedVariableValue? { - .associativeArray(map { ($0, $1.asStringVariableValue()) }) + .associativeArray(map { ($0, $1.asStringVariableValue()) }.sorted { $0.0 < $1.0 }) } } diff --git a/Tests/ScreamURITemplateTests/TestModels.swift b/Tests/ScreamURITemplateTests/TestModels.swift index b5f1ce0..f40ce83 100644 --- a/Tests/ScreamURITemplateTests/TestModels.swift +++ b/Tests/ScreamURITemplateTests/TestModels.swift @@ -89,18 +89,7 @@ extension TestCase { let expansionsData = data[1] switch expansionsData { case let .string(string): - // HACK: ensure the tests support alternate ordering for dictionary explode tests - // A PR has been raised to add support for the alternate ordering https://github.com/uri-templates/uritemplate-test/pull/58 - switch string { - case "key1,val1%2F,key2,val2%2F": - acceptableExpansions = [string, "key2,val2%2F,key1,val1%2F"] - case "#key1,val1%2F,key2,val2%2F": - acceptableExpansions = [string, "#key2,val2%2F,key1,val1%2F"] - case "key1,val1%252F,key2,val2%252F": - acceptableExpansions = [string, "key2,val2%252F,key1,val1%252F"] - default: - acceptableExpansions = [string] - } + acceptableExpansions = [string] shouldFail = false case let .array(array): acceptableExpansions = array.compactMap { value in diff --git a/Tests/ScreamURITemplateTests/Tests.swift b/Tests/ScreamURITemplateTests/Tests.swift index 7ed25f4..e8be956 100644 --- a/Tests/ScreamURITemplateTests/Tests.swift +++ b/Tests/ScreamURITemplateTests/Tests.swift @@ -40,7 +40,7 @@ class Tests: XCTestCase { ] as KeyValuePairs, ] let urlString = try template.process(variables: variables) - XCTAssertTrue(["https://api.example.com/SwiftScream?a=A&b=42&b2=42&a2=A", "https://api.example.com/SwiftScream?b=42&a=A&b2=42&a2=A"].contains(urlString)) + XCTAssertEqual("https://api.example.com/SwiftScream?a=A&b=42&b2=42&a2=A", urlString) } func testSendable() {