fix: configure conformance tests
This commit is contained in:
2
testdata/PklProject
vendored
2
testdata/PklProject
vendored
@@ -7,6 +7,6 @@ dependencies {
|
||||
|
||||
// Formae schema - fetched from public registry
|
||||
["formae"] {
|
||||
uri = "package://hub.platform.engineering/plugins/pkl/schema/pkl/formae/formae@0.80.0"
|
||||
uri = "package://hub.platform.engineering/plugins/pkl/schema/pkl/formae/formae@0.80.1"
|
||||
}
|
||||
}
|
||||
|
||||
43
testdata/resource-replace.pkl
vendored
43
testdata/resource-replace.pkl
vendored
@@ -1,50 +1,35 @@
|
||||
/*
|
||||
* Conformance Test: Replace Resource
|
||||
* Conformance Test: Create Resource
|
||||
*
|
||||
* This file modifies a createOnly field to trigger resource replacement.
|
||||
* Changes from resource.pkl:
|
||||
* - region: changed from "us-east-1" to "us-west-2"
|
||||
*
|
||||
* The region field has createOnly=true, so formae should delete the
|
||||
* existing resource and create a new one with the new region.
|
||||
* This file defines the initial resource state for conformance testing.
|
||||
* The conformance test harness will apply this file first.
|
||||
*/
|
||||
amends "@formae/forma.pkl"
|
||||
import "@formae/formae.pkl"
|
||||
|
||||
import "@proxmox/proxmox.pkl"
|
||||
|
||||
local stackName = "plugin-sdk-test-stack"
|
||||
local testRunID = read("env:FORMAE_TEST_RUN_ID")
|
||||
local stackName = "conformance-test-\(testRunID)"
|
||||
|
||||
forma {
|
||||
new formae.Stack {
|
||||
label = stackName
|
||||
description = "Plugin SDK conformance test stack"
|
||||
}
|
||||
|
||||
new formae.Target {
|
||||
label = "example-target"
|
||||
namespace = "PROXMOX"
|
||||
config = new Mapping {
|
||||
["region"] = "us-west-2" // CHANGED to match resource
|
||||
label = "target"
|
||||
config = new proxmox.Config {
|
||||
url: "https://proxmox.mid:8006"
|
||||
node: proxmox
|
||||
}
|
||||
}
|
||||
|
||||
new example.ExampleResource {
|
||||
label = "plugin-sdk-test-resource"
|
||||
name = "formae-plugin-sdk-test-\(testRunID)"
|
||||
description = "Test resource for plugin SDK conformance tests"
|
||||
region = "us-west-2" // CHANGED - triggers replacement
|
||||
|
||||
endpoint = new example.Endpoint {
|
||||
url = "https://api.example.com"
|
||||
port = 8080
|
||||
protocol = "https"
|
||||
}
|
||||
|
||||
tags = new Listing {
|
||||
new example.Tag { key = "Environment"; value = "test" }
|
||||
new example.Tag { key = "ManagedBy"; value = "formae" }
|
||||
}
|
||||
new proxmox.LXC {
|
||||
label = "test-lxc"
|
||||
vmid = "220"
|
||||
hostname = "test-lxc"
|
||||
description = "some other description"
|
||||
ostemplate = "local:vztmpl/alpine-3.22-default_20250617_amd64.tar.xz"
|
||||
}
|
||||
}
|
||||
|
||||
47
testdata/resource-update.pkl
vendored
47
testdata/resource-update.pkl
vendored
@@ -1,54 +1,35 @@
|
||||
/*
|
||||
* Conformance Test: Update Resource (in-place)
|
||||
* Conformance Test: Create Resource
|
||||
*
|
||||
* This file modifies mutable fields to trigger an in-place update.
|
||||
* Changes from resource.pkl:
|
||||
* - name: added "-updated" suffix
|
||||
* - description: changed text
|
||||
* - endpoint.port: changed from 8080 to 9090
|
||||
* - tags: added a new tag
|
||||
*
|
||||
* These fields do NOT have createOnly=true, so formae should update
|
||||
* the resource in place without replacement.
|
||||
* This file defines the initial resource state for conformance testing.
|
||||
* The conformance test harness will apply this file first.
|
||||
*/
|
||||
amends "@formae/forma.pkl"
|
||||
import "@formae/formae.pkl"
|
||||
|
||||
import "@proxmox/proxmox.pkl"
|
||||
|
||||
local stackName = "plugin-sdk-test-stack"
|
||||
local testRunID = read("env:FORMAE_TEST_RUN_ID")
|
||||
local stackName = "conformance-test-\(testRunID)"
|
||||
|
||||
forma {
|
||||
new formae.Stack {
|
||||
label = stackName
|
||||
description = "Plugin SDK conformance test stack"
|
||||
}
|
||||
|
||||
new formae.Target {
|
||||
label = "example-target"
|
||||
namespace = "PROXMOX"
|
||||
config = new Mapping {
|
||||
["region"] = "us-east-1"
|
||||
label = "target"
|
||||
config = new proxmox.Config {
|
||||
url: "https://proxmox.mid:8006"
|
||||
node: proxmox
|
||||
}
|
||||
}
|
||||
|
||||
new example.ExampleResource {
|
||||
label = "plugin-sdk-test-resource"
|
||||
name = "formae-plugin-sdk-test-\(testRunID)-updated" // CHANGED
|
||||
description = "Test resource - UPDATED" // CHANGED
|
||||
region = "us-east-1" // unchanged (createOnly)
|
||||
|
||||
endpoint = new example.Endpoint {
|
||||
url = "https://api.example.com"
|
||||
port = 9090 // CHANGED from 8080
|
||||
protocol = "https"
|
||||
}
|
||||
|
||||
tags = new Listing {
|
||||
new example.Tag { key = "Environment"; value = "test" }
|
||||
new example.Tag { key = "ManagedBy"; value = "formae" }
|
||||
new example.Tag { key = "UpdatedAt"; value = "conformance-test" } // ADDED
|
||||
}
|
||||
new proxmox.LXC {
|
||||
label = "test-lxc"
|
||||
vmid = "210"
|
||||
hostname = "test-lxc"
|
||||
description = "some other description"
|
||||
ostemplate = "local:vztmpl/alpine-3.22-default_20250617_amd64.tar.xz"
|
||||
}
|
||||
}
|
||||
|
||||
34
testdata/resource.pkl
vendored
34
testdata/resource.pkl
vendored
@@ -9,41 +9,29 @@ import "@formae/formae.pkl"
|
||||
|
||||
import "@proxmox/proxmox.pkl"
|
||||
|
||||
local stackName = "plugin-sdk-test-stack"
|
||||
// Read the test run ID from environment variable set by the test harness
|
||||
// This ensures consistent naming within a test run but unique names between runs
|
||||
local testRunID = read("env:FORMAE_TEST_RUN_ID")
|
||||
local stackName = "conformance-test-\(testRunID)"
|
||||
|
||||
forma {
|
||||
new formae.Stack {
|
||||
label = stackName
|
||||
description = "Plugin SDK conformance test stack"
|
||||
description = ""
|
||||
}
|
||||
|
||||
new formae.Target {
|
||||
label = "example-target"
|
||||
label = "target"
|
||||
namespace = "PROXMOX"
|
||||
// TODO: Add your provider-specific configuration
|
||||
config = new Mapping {
|
||||
["region"] = "us-east-1"
|
||||
["url"] = "https://proxmox.mid:8006"
|
||||
["node"] = "proxmox"
|
||||
}
|
||||
}
|
||||
|
||||
new example.ExampleResource {
|
||||
label = "plugin-sdk-test-resource"
|
||||
name = "formae-plugin-sdk-test-\(testRunID)"
|
||||
description = "Test resource for plugin SDK conformance tests"
|
||||
region = "us-east-1"
|
||||
|
||||
endpoint = new example.Endpoint {
|
||||
url = "https://api.example.com"
|
||||
port = 8080
|
||||
protocol = "https"
|
||||
}
|
||||
|
||||
tags = new Listing {
|
||||
new example.Tag { key = "Environment"; value = "test" }
|
||||
new example.Tag { key = "ManagedBy"; value = "formae" }
|
||||
}
|
||||
new proxmox.LXC {
|
||||
label = "test-lxc"
|
||||
vmid = "210"
|
||||
hostname = "test-lxc"
|
||||
description = "no description provided"
|
||||
ostemplate = "local:vztmpl/alpine-3.22-default_20250617_amd64.tar.xz"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user