import Foundation @testable import Wikipedia @testable import WMF import XCTest class TalkPageTestHelpers { enum TalkPageJSONType { case original case updated case largeForPerformance case smallForPerformance case largeUpdatedForPerformance var fileName: String { var fileName: String switch self { case .original: fileName = "TalkPage-small" case .updated: fileName = "TalkPage-small-updated" case .smallForPerformance: fileName = "TalkPage-extrasmall" case .largeForPerformance: fileName = "TalkPage-large" case .largeUpdatedForPerformance: fileName = "TalkPage-large-updated" } return fileName } } static func networkTalkPage(for urlString: String, data: Data, revisionId: Int) -> NetworkTalkPage? { let session = MWKDataStore.temporary().session do { let result: NetworkBase = try session.jsonDecodeData(data: data) // update sort for (topicIndex, topic) in result.topics.enumerated() { topic.sort = topicIndex for (replyIndex, reply) in topic.replies.enumerated() { reply.sort = replyIndex } } let talkPage = NetworkTalkPage(url: URL(string: urlString)!, topics: result.topics, revisionId: revisionId, displayTitle: "Username") return talkPage } catch { return nil } } }