Skip to content

Commit

Permalink
Merge pull request #149 from Chewie69006/patch-1
Browse files Browse the repository at this point in the history
Sort HTTP methods to remove randomness from keys
  • Loading branch information
AvdLee authored Sep 11, 2023
2 parents e5b1e27 + e08d07a commit d56222c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Sources/Mocker/Mock.swift
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,8 @@ public struct Mock: Equatable {
}

public static func == (lhs: Mock, rhs: Mock) -> Bool {
let lhsHTTPMethods: [String] = lhs.data.keys.compactMap { $0.rawValue }
let rhsHTTPMethods: [String] = rhs.data.keys.compactMap { $0.rawValue }
let lhsHTTPMethods: [String] = lhs.data.keys.compactMap { $0.rawValue }.sorted()
let rhsHTTPMethods: [String] = rhs.data.keys.compactMap { $0.rawValue }.sorted()

if let lhsFileExtensions = lhs.fileExtensions, let rhsFileExtensions = rhs.fileExtensions, (!lhsFileExtensions.isEmpty || !rhsFileExtensions.isEmpty) {
/// The mocks are targeting file extensions specifically, check on those.
Expand Down
9 changes: 9 additions & 0 deletions Tests/MockerTests/MockTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,13 @@ final class MockTests: XCTestCase {
XCTAssertEqual(mock200, mock400)
XCTAssertNotEqual(mock200, mockJPEG)
}

func testMethodsComparing() {
let url = URL(string: "https://mocked.wetransfer.com")!

let methods = [Mock.HTTPMethod.options, .get, .head, .post, .put, .patch, .delete, .trace, .connect]
let first = Mock(url: url, statusCode: 200, data: Dictionary(uniqueKeysWithValues: methods.shuffled().map { ($0, Data()) }))
let second = Mock(url: url, statusCode: 200, data: Dictionary(uniqueKeysWithValues: methods.shuffled().map { ($0, Data()) }))
XCTAssertEqual(first, second)
}
}

0 comments on commit d56222c

Please sign in to comment.