Skip to content

Commit 5cbfed4

Browse files
committed
test: add comprehensive unit tests for PropertyStruct based on real BOSH templates
Analyzed property access patterns from cloudfoundry/bosh repository jobs and added extensive test coverage for: - Deeply nested property access (e.g., director.db.user, nats.address) - Property defaults with p('prop', default) - Conditional property helpers with if_p - Multiple properties in if_p blocks - Array iteration with hash element access - Spec object property access (spec.index, spec.id, spec.ip) - Complex nested object creation from properties - Boolean and numeric property types in conditionals These tests ensure PropertyStruct maintains full compatibility with OpenStruct for all real-world BOSH template usage patterns. Also added Go 1.24.0 and Ruby 3.4 to devbox.json for development. Related to rkoster/rubionic-workspace#229
1 parent 82de8a4 commit 5cbfed4

2 files changed

Lines changed: 493 additions & 0 deletions

File tree

devbox.lock

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
{
2+
"lockfile_version": "1",
3+
"packages": {
4+
"github:NixOS/nixpkgs/nixpkgs-unstable": {
5+
"last_modified": "2025-12-27T21:13:36Z",
6+
"resolved": "github:NixOS/nixpkgs/5c2bc52fb9f8c264ed6c93bd20afa2ff5e763dce?lastModified=1766870016&narHash=sha256-fHmxAesa6XNqnIkcS6%2BnIHuEmgd%2FiZSP%2FVXxweiEuQw%3D"
7+
},
8+
"go@1.24.0": {
9+
"last_modified": "2025-02-23T09:42:26Z",
10+
"resolved": "github:NixOS/nixpkgs/2d068ae5c6516b2d04562de50a58c682540de9bf#go_1_24",
11+
"source": "devbox-search",
12+
"version": "1.24.0",
13+
"systems": {
14+
"aarch64-darwin": {
15+
"outputs": [
16+
{
17+
"name": "out",
18+
"path": "/nix/store/v495d2fb3ffi08ri6jffvhzr08p104pk-go-1.24.0",
19+
"default": true
20+
}
21+
],
22+
"store_path": "/nix/store/v495d2fb3ffi08ri6jffvhzr08p104pk-go-1.24.0"
23+
},
24+
"aarch64-linux": {
25+
"outputs": [
26+
{
27+
"name": "out",
28+
"path": "/nix/store/fy5xhvha2ha7jcyqp73haqrpg8npw63b-go-1.24.0",
29+
"default": true
30+
}
31+
],
32+
"store_path": "/nix/store/fy5xhvha2ha7jcyqp73haqrpg8npw63b-go-1.24.0"
33+
},
34+
"x86_64-darwin": {
35+
"outputs": [
36+
{
37+
"name": "out",
38+
"path": "/nix/store/gg6947k6wwxq7ld2f90i62fkcf3kdd55-go-1.24.0",
39+
"default": true
40+
}
41+
],
42+
"store_path": "/nix/store/gg6947k6wwxq7ld2f90i62fkcf3kdd55-go-1.24.0"
43+
},
44+
"x86_64-linux": {
45+
"outputs": [
46+
{
47+
"name": "out",
48+
"path": "/nix/store/wk1vg9ksvmqwxhgj7cmvdv1g62v9kff0-go-1.24.0",
49+
"default": true
50+
}
51+
],
52+
"store_path": "/nix/store/wk1vg9ksvmqwxhgj7cmvdv1g62v9kff0-go-1.24.0"
53+
}
54+
}
55+
},
56+
"ruby@3.4": {
57+
"last_modified": "2025-12-19T06:18:24Z",
58+
"plugin_version": "0.0.2",
59+
"resolved": "github:NixOS/nixpkgs/7d853e518814cca2a657b72eeba67ae20ebf7059#ruby_3_4",
60+
"source": "devbox-search",
61+
"version": "3.4.8",
62+
"systems": {
63+
"aarch64-darwin": {
64+
"outputs": [
65+
{
66+
"name": "out",
67+
"path": "/nix/store/l7y8sk5wjy059vb4p2zqimhfg81y7k56-ruby-3.4.8",
68+
"default": true
69+
},
70+
{
71+
"name": "devdoc",
72+
"path": "/nix/store/ml55wc4rwakndj55iw39shbc0pxvpkn2-ruby-3.4.8-devdoc"
73+
}
74+
],
75+
"store_path": "/nix/store/l7y8sk5wjy059vb4p2zqimhfg81y7k56-ruby-3.4.8"
76+
},
77+
"aarch64-linux": {
78+
"outputs": [
79+
{
80+
"name": "out",
81+
"path": "/nix/store/1rack9mx33cqdm8z908yz1a80q153hb1-ruby-3.4.8",
82+
"default": true
83+
},
84+
{
85+
"name": "devdoc",
86+
"path": "/nix/store/9njsxja1ps0vq25xkaxyb10v01q0lnjd-ruby-3.4.8-devdoc"
87+
}
88+
],
89+
"store_path": "/nix/store/1rack9mx33cqdm8z908yz1a80q153hb1-ruby-3.4.8"
90+
},
91+
"x86_64-darwin": {
92+
"outputs": [
93+
{
94+
"name": "out",
95+
"path": "/nix/store/iwgzafzagsjjdbj6h1pj9xdxxqr8akrl-ruby-3.4.8",
96+
"default": true
97+
},
98+
{
99+
"name": "devdoc",
100+
"path": "/nix/store/zarwsrj4k6a250v3hd2cvmch5nqnap2q-ruby-3.4.8-devdoc"
101+
}
102+
],
103+
"store_path": "/nix/store/iwgzafzagsjjdbj6h1pj9xdxxqr8akrl-ruby-3.4.8"
104+
},
105+
"x86_64-linux": {
106+
"outputs": [
107+
{
108+
"name": "out",
109+
"path": "/nix/store/gphbrsb5wd49qwg9bxby194wwm47awks-ruby-3.4.8",
110+
"default": true
111+
},
112+
{
113+
"name": "devdoc",
114+
"path": "/nix/store/hhzf48bh7drk9a46qzc7d0cwrfisr8yl-ruby-3.4.8-devdoc"
115+
}
116+
],
117+
"store_path": "/nix/store/gphbrsb5wd49qwg9bxby194wwm47awks-ruby-3.4.8"
118+
}
119+
}
120+
}
121+
}
122+
}

0 commit comments

Comments
 (0)