Skip to content

Commit 2b7198f

Browse files
authored
Typescript server unittests (#111)
* Add server TypeScript unit tests Signed-off-by: Alexander Dahmen <alexander.dahmen@inovex.de> * Add server attach TypeScript unit tests Signed-off-by: Alexander Dahmen <alexander.dahmen@inovex.de> --------- Signed-off-by: Alexander Dahmen <alexander.dahmen@inovex.de>
1 parent 50fd0bf commit 2b7198f

8 files changed

Lines changed: 8406 additions & 261 deletions

File tree

package-lock.json

Lines changed: 4137 additions & 261 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"public_ip_unit_test": "file:tests/ts/iaas/public_ip",
2222
"routing_table_unit_test": "file:tests/ts/iaas/routingTable",
2323
"securitygroup_unit_test": "file:tests/ts/iaas/securityGroup",
24+
"server_unit_test": "file:tests/ts/iaas/server",
2425
"volume_unit_test": "file:tests/ts/iaas/volume"
2526
}
2627
}

tests/ts/iaas/server/Pulumi.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: server_unit_test
2+
description: A minimal TypeScript Pulumi program
3+
runtime:
4+
name: nodejs
5+
options:
6+
packagemanager: npm
7+
config:
8+
pulumi:tags:
9+
value:
10+
pulumi:template: typescript

tests/ts/iaas/server/index.ts

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import * as pulumi from "@pulumi/pulumi";
2+
import * as stackit from "@stackitcloud/pulumi-stackit";
3+
4+
export const serverProjectId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
5+
export const serverName = "example-server-name";
6+
export const serverMachineType = "g2i.1";
7+
export const serverAvailabilityZone = "eu01-1";
8+
export const serverAffinityGroupId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx1";
9+
export const serverKeypairName = "keypairName";
10+
export const serverDesiredStatus = "active";
11+
export const serverNetworkInterfaceId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx2";
12+
export const serverUserData = "#!/bin/bash";
13+
export const serverBootVolumeSourceType = "image";
14+
export const serverBootVolumeSourceId = "59838a89-51b1-4892-b57f-b3caf598ee2f";
15+
16+
export const serverAttachedVolumeId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx3";
17+
export const serverAttachedServiceAccount = "service-account@stackit.cloud";
18+
19+
20+
export const serverLabelKey = "unit-test";
21+
export const serverLabelValue = "test-label-value";
22+
23+
24+
// datasource
25+
export const serverId = "server-id-to-read";
26+
27+
// only required fields were set
28+
export const exampleServerOnlyRequired = new stackit.Server("example_server_req", {
29+
projectId: serverProjectId,
30+
name: serverName,
31+
machineType: serverMachineType,
32+
});
33+
34+
// everything is set
35+
export const exampleServerMax = new stackit.Server("example_server_max", {
36+
projectId: serverProjectId,
37+
name: serverName,
38+
machineType: serverMachineType,
39+
affinityGroup: serverAffinityGroupId,
40+
availabilityZone: serverAvailabilityZone,
41+
keypairName: serverKeypairName,
42+
desiredStatus: serverDesiredStatus,
43+
networkInterfaces: [serverNetworkInterfaceId],
44+
userData: serverUserData,
45+
bootVolume: {
46+
sourceId: serverBootVolumeSourceId,
47+
sourceType: serverBootVolumeSourceType,
48+
},
49+
labels: {[serverLabelKey]:serverLabelValue},
50+
});
51+
52+
// datasource
53+
export const serverDatasource = stackit.getServerOutput({
54+
projectId: serverProjectId,
55+
serverId: serverId,
56+
});
57+
58+
// server network interface attach
59+
export const serverNetworkInterfaceAttach = new stackit.ServerNetworkInterfaceAttach("attached_network_interface", {
60+
projectId: serverProjectId,
61+
serverId: serverId,
62+
networkInterfaceId: serverNetworkInterfaceId,
63+
});
64+
65+
// server service account attach
66+
export const serverServiceAccountAttach = new stackit.ServerServiceAccountAttach("attached_service_account", {
67+
projectId: serverProjectId,
68+
serverId: serverId,
69+
serviceAccountEmail: serverAttachedServiceAccount,
70+
});
71+
72+
// server volume attach
73+
export const serverVolumeAttach = new stackit.ServerVolumeAttach("attached_volume", {
74+
projectId: serverProjectId,
75+
serverId: serverId,
76+
volumeId: serverAttachedVolumeId,
77+
});

0 commit comments

Comments
 (0)