chore: fix some test issues

This commit is contained in:
Aarnav Tale
2026-02-08 11:11:44 -05:00
parent 0b8ae8fa2d
commit 0080cddb55
3 changed files with 121 additions and 145 deletions
+62 -58
View File
@@ -1,72 +1,76 @@
import { describe, expect, test } from 'vitest';
import { getNode, getRuntimeClient, getIsAtLeast, HS_VERSIONS } from './setup/env';
import { describe, expect, test } from "vitest";
describe.sequential.for(HS_VERSIONS)('Headscale %s: Users', (version) => {
let workingNodeId: string;
import { getBootstrapClient, getNode, getRuntimeClient, HS_VERSIONS } from "./setup/env";
test('nodes can register via their nodekey', async () => {
const client = await getRuntimeClient(version);
const tailnetNode = await getNode(version);
describe.sequential.for(HS_VERSIONS)("Headscale %s: Users", (version) => {
let workingNodeId: string;
const user = await client.createUser('node-reg@');
const node = await client.registerNode(user.name, tailnetNode.authCode);
expect(node).toBeDefined();
expect(node.registerMethod).toBe('REGISTER_METHOD_CLI');
expect(node.name).toBe(tailnetNode.nodeName);
});
test("nodes can register via their nodekey", async () => {
const client = await getRuntimeClient(version);
const tailnetNode = await getNode(version);
test('nodes can be retrieved', async () => {
const client = await getRuntimeClient(version);
const { nodeName } = await getNode(version);
const nodes = await client.getNodes();
const node = nodes.find((n) => n.name === nodeName);
expect(node).toBeDefined();
expect(node?.name).toBe(nodeName);
const user = await client.createUser("node-reg@");
const node = await client.registerNode(user.name, tailnetNode.authCode);
expect(node).toBeDefined();
expect(node.registerMethod).toBe("REGISTER_METHOD_CLI");
expect(node.name).toBe(tailnetNode.nodeName);
});
const fetchedNode = await client.getNode(node!.id);
expect(fetchedNode).toBeDefined();
expect(fetchedNode.id).toBe(node!.id);
workingNodeId = node!.id;
});
test("nodes can be retrieved", async () => {
const client = await getRuntimeClient(version);
const { nodeName } = await getNode(version);
const nodes = await client.getNodes();
const node = nodes.find((n) => n.name === nodeName);
expect(node).toBeDefined();
expect(node?.name).toBe(nodeName);
test('nodes can be renamed', async () => {
const client = await getRuntimeClient(version);
const { nodeName } = await getNode(version);
const newName = `${nodeName}-renamed`;
const fetchedNode = await client.getNode(node!.id);
expect(fetchedNode).toBeDefined();
expect(fetchedNode.id).toBe(node!.id);
workingNodeId = node!.id;
});
await client.renameNode(workingNodeId, newName);
const renamedNode = await client.getNode(workingNodeId);
expect(renamedNode).toBeDefined();
expect(renamedNode.givenName).toBe(newName);
});
test("nodes can be renamed", async () => {
const client = await getRuntimeClient(version);
const { nodeName } = await getNode(version);
const newName = `${nodeName}-renamed`;
test('nodes can be reassigned to another user', async () => {
if (! getIsAtLeast("0.28.0")) {
const client = await getRuntimeClient(version);
const user = await client.createUser('node-reassign@');
await client.renameNode(workingNodeId, newName);
const renamedNode = await client.getNode(workingNodeId);
expect(renamedNode).toBeDefined();
expect(renamedNode.givenName).toBe(newName);
});
await client.setNodeUser(workingNodeId, user.id);
const reassignedNode = await client.getNode(workingNodeId);
expect(reassignedNode).toBeDefined();
expect(reassignedNode.user.name).toBe(user.name);
}
});
test("nodes can be reassigned to another user", async (context) => {
const bootstrap = await getBootstrapClient(version);
if (bootstrap.clientHelpers.isAtleast("0.28.0")) {
context.skip();
}
test('nodes can be expired', async () => {
const client = await getRuntimeClient(version);
await client.expireNode(workingNodeId);
const client = await getRuntimeClient(version);
const user = await client.createUser("node-reassign@");
const expiredNode = await client.getNode(workingNodeId);
expect(expiredNode).toBeDefined();
expect(expiredNode.expiry).toBeDefined();
});
await client.setNodeUser(workingNodeId, user.id);
const reassignedNode = await client.getNode(workingNodeId);
expect(reassignedNode).toBeDefined();
expect(reassignedNode.user.name).toBe(user.name);
});
test('nodes can be deleted', async () => {
const client = await getRuntimeClient(version);
await client.deleteNode(workingNodeId);
test("nodes can be expired", async () => {
const client = await getRuntimeClient(version);
await client.expireNode(workingNodeId);
const nodes = await client.getNodes();
const node = nodes.find((n) => n.id === workingNodeId);
expect(node).toBeUndefined();
});
const expiredNode = await client.getNode(workingNodeId);
expect(expiredNode).toBeDefined();
expect(expiredNode.expiry).toBeDefined();
});
test("nodes can be deleted", async () => {
const client = await getRuntimeClient(version);
await client.deleteNode(workingNodeId);
const nodes = await client.getNodes();
const node = nodes.find((n) => n.id === workingNodeId);
expect(node).toBeUndefined();
});
});