A Docker-like CLI and HTTP API for managing headless VMs
at main 44 lines 1.1 kB view raw
1import { assertEquals } from "@std/assert"; 2import { stringify } from "@std/yaml"; 3import { snakeCase } from "./xorriso.ts"; 4 5Deno.test("Serialize Seed Data to YAML", () => { 6 const seed = { 7 metaData: { 8 instanceId: "vmx-12345", 9 localHostname: "vmx-test", 10 }, 11 userData: { 12 users: [ 13 { 14 name: "testuser", 15 shell: "/bin/bash", 16 sudo: ["ALL=(ALL) NOPASSWD:ALL"], 17 sshAuthorizedKeys: ["ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr..."], 18 }, 19 ], 20 sshPwauth: false, 21 packages: ["curl", "git"], 22 }, 23 }; 24 25 const expectedMetaDataYAML = `instance_id: vmx-12345 26local_hostname: vmx-test 27`; 28 29 const expectedUserDataYAML = `users: 30 - name: testuser 31 shell: /bin/bash 32 sudo: 33 - 'ALL=(ALL) NOPASSWD:ALL' 34 ssh_authorized_keys: 35 - ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAr... 36ssh_pwauth: false 37packages: 38 - curl 39 - git 40`; 41 42 assertEquals(stringify(snakeCase(seed.metaData)), expectedMetaDataYAML); 43 assertEquals(stringify(snakeCase(seed.userData)), expectedUserDataYAML); 44});