|
1 |
| -import std/[json, options] |
2 |
| -import api/cfcache |
| 1 | +import std/[options, sequtils, sugar] |
| 2 | +import api/[cfcache, cfcore] |
| 3 | +import modpack/version |
3 | 4 |
|
4 | 5 | cfcache.purge()
|
5 | 6 |
|
| 7 | +proc initCfAddonFile(fileId: int, name: string, gameVersions: seq[string], releaseType: CfAddonFileReleaseType): CfAddonFile = |
| 8 | + result = CfAddonFile() |
| 9 | + result.fileId = fileId |
| 10 | + result.name = name |
| 11 | + result.releaseType = releaseType |
| 12 | + result.downloadUrl = "https://download-here.com/" & name |
| 13 | + result.gameVersions = gameVersions.map((x) => x.Version) |
| 14 | + |
| 15 | +proc initCfAddon(projectId: int, name: string, gameVersionLatestFiles: seq[tuple[version: Version, fileId: int]]): CfAddon = |
| 16 | + result = CfAddon() |
| 17 | + result.projectId = projectId |
| 18 | + result.name = name |
| 19 | + result.description = "description" |
| 20 | + result.websiteUrl = "https://website-url.com/" & name |
| 21 | + result.authors = @["user1", "user2"] |
| 22 | + result.downloads = 102039 |
| 23 | + result.popularity = 0.5 |
| 24 | + result.latestFiles = @[] |
| 25 | + result.gameVersionLatestFiles = gameVersionLatestFiles |
| 26 | + |
6 | 27 | block: # caching addons
|
7 |
| - let json = %* { |
8 |
| - "id": 123 |
9 |
| - } |
| 28 | + let addon = initCfAddon(123, "Just Enough Items (JEI)", @[(version: "1.16".Version, fileId: 2)]) |
10 | 29 | doAssert getAddon(123).isNone()
|
11 |
| - cfcache.putAddon(json) |
12 |
| - doAssert getAddon(123).get() == json |
| 30 | + cfcache.putAddon(addon) |
| 31 | + doAssert getAddon(123).isSome() |
13 | 32 |
|
14 | 33 | block: # caching addon files
|
15 |
| - let json = %* { |
16 |
| - "id": 456 |
17 |
| - } |
| 34 | + let addonFile = initCfAddonFile(456, "jei-1.0.2.jar", @["1.16.1", "1.16.2", "Forge"], CfAddonFileReleaseType.Beta) |
18 | 35 | doAssert getAddonFile(456).isNone()
|
19 |
| - cfcache.putAddonFile(json) |
20 |
| - doAssert getAddonFile(456).get() == json |
| 36 | + cfcache.putAddonFile(addonFile) |
| 37 | + doAssert getAddonFile(456).isSome() |
21 | 38 |
|
22 | 39 | block: # cleaning
|
23 | 40 | let numCleanedFiles = cfcache.clean()
|
|
0 commit comments