44 lines
1.6 KiB
Nim
44 lines
1.6 KiB
Nim
import unittest
|
|
import std/times
|
|
import ../src/nip/types
|
|
|
|
suite "Core Data Types":
|
|
|
|
test "NpkManifest can be instantiated correctly":
|
|
let manifest = NpkManifest(
|
|
name: "htop",
|
|
version: SemVer("3.3.0"),
|
|
description: "Interactive process viewer",
|
|
channels: @["stable"],
|
|
source: NpkSource(originPackage: "htop", originVersion: "3.3.0-1"),
|
|
dependencies: @[NpkDependency(name: "ncurses", hash: Blake2bHash("hash123"))],
|
|
build: NpkBuild(
|
|
timestamp: getTime(),
|
|
buildSystem: "x86_64-linux",
|
|
compiler: "gcc",
|
|
envHash: Blake2bHash("envhash123")
|
|
),
|
|
files: @[NpkFile(path: "/bin/htop", hash: Blake2bHash("filehash123"), permissions: "755")],
|
|
artifacts: @[NpkArtifact(name: "license", hash: Blake2bHash("licensehash123"))],
|
|
services: @[NpkService(serviceType: "systemd", name: "htop.service", hash: Blake2bHash("servicehash123"))],
|
|
signatures: @[NpkSignature(keyType: "ed25519", keyId: "keyid123", value: "sig123")]
|
|
)
|
|
check(manifest.name == "htop")
|
|
check(manifest.version == SemVer("3.3.0"))
|
|
check(manifest.dependencies.len == 1)
|
|
check(manifest.dependencies[0].name == "ncurses")
|
|
|
|
test "NipLock can be instantiated correctly":
|
|
let lockfile = NipLock(
|
|
lockfileVersion: "1.2",
|
|
generation: LockfileGeneration(
|
|
id: Blake2bHash("genhash123"),
|
|
created: getTime(),
|
|
previous: Blake2bHash("prevgenhash123")
|
|
),
|
|
packages: @[LockfilePackage(name: "htop", hash: Blake2bHash("htophash123"))]
|
|
)
|
|
check(lockfile.lockfileVersion == "1.2")
|
|
check(lockfile.packages.len == 1)
|
|
check(lockfile.packages[0].name == "htop")
|