+ Top package test

This commit is contained in:
David Bureš 2024-09-21 15:43:30 +02:00
parent 36a18a6bc6
commit 7179dbb959
1 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,50 @@
//
// Top Packages.swift
// Cork
//
// Created by David Bureš on 21.09.2024.
//
import Foundation
import Testing
@Suite("Top Package Handling")
struct TestTopPackageHandling
{
@Test("Retrieve Top Packages")
func retrieveTopPackages() async throws
{
let mockedTopPackageTracker: TopPackagesTracker = await .init()
await mockedTopPackageTracker.loadTopPackages(appState: .init())
// MARK: - Confirm the tracker is not empty
await #expect(!mockedTopPackageTracker.sortedTopFormulae.isEmpty)
await #expect(!mockedTopPackageTracker.sortedTopCasks.isEmpty)
await #expect(mockedTopPackageTracker.sortedTopFormulae.count > 2)
await #expect(mockedTopPackageTracker.sortedTopCasks.count > 2)
}
@Test("Sort Top Packages")
@MainActor
func sortTopPackages() async throws
{
let initialUserDefaultsState = UserDefaults.standard.object(forKey: "sortTopPackagesBy")
let mockedTopPackageTracker: TopPackagesTracker = .init()
await mockedTopPackageTracker.loadTopPackages(appState: .init())
// MARK: - Confirm the top packages are sorted correctly
mockedTopPackageTracker.sortTopPackagesBy = .mostDownloads
#expect(mockedTopPackageTracker.sortedTopFormulae[0].packageDownloads > mockedTopPackageTracker.sortedTopFormulae[1].packageDownloads)
mockedTopPackageTracker.sortTopPackagesBy = .fewestDownloads
#expect(mockedTopPackageTracker.sortedTopFormulae[0].packageDownloads < mockedTopPackageTracker.sortedTopFormulae[1].packageDownloads)
mockedTopPackageTracker.sortTopPackagesBy = .mostDownloads
}
}