@quadnix/octo 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/.eslintrc.cjs +26 -0
  2. package/dist/app.type.d.ts +70 -0
  3. package/dist/app.type.js +8 -0
  4. package/dist/app.type.js.map +1 -0
  5. package/dist/decorators/action.decorator.d.ts +2 -0
  6. package/dist/decorators/action.decorator.js +25 -0
  7. package/dist/decorators/action.decorator.js.map +1 -0
  8. package/dist/decorators/anchor.decorator.d.ts +1 -0
  9. package/dist/decorators/anchor.decorator.js +10 -0
  10. package/dist/decorators/anchor.decorator.js.map +1 -0
  11. package/dist/decorators/container.d.ts +23 -0
  12. package/dist/decorators/container.js +93 -0
  13. package/dist/decorators/container.js.map +1 -0
  14. package/dist/decorators/factory.decorator.d.ts +8 -0
  15. package/dist/decorators/factory.decorator.js +7 -0
  16. package/dist/decorators/factory.decorator.js.map +1 -0
  17. package/dist/decorators/model.decorator.d.ts +1 -0
  18. package/dist/decorators/model.decorator.js +10 -0
  19. package/dist/decorators/model.decorator.js.map +1 -0
  20. package/dist/decorators/module.decorator.d.ts +1 -0
  21. package/dist/decorators/module.decorator.js +12 -0
  22. package/dist/decorators/module.decorator.js.map +1 -0
  23. package/dist/decorators/overlay.decorator.d.ts +1 -0
  24. package/dist/decorators/overlay.decorator.js +10 -0
  25. package/dist/decorators/overlay.decorator.js.map +1 -0
  26. package/dist/decorators/resource.decorator.d.ts +1 -0
  27. package/dist/decorators/resource.decorator.js +10 -0
  28. package/dist/decorators/resource.decorator.js.map +1 -0
  29. package/dist/decorators/test-container.d.ts +16 -0
  30. package/dist/decorators/test-container.js +37 -0
  31. package/dist/decorators/test-container.js.map +1 -0
  32. package/dist/functions/dependency/dependency.model.d.ts +53 -0
  33. package/dist/functions/dependency/dependency.model.js +125 -0
  34. package/dist/functions/dependency/dependency.model.js.map +1 -0
  35. package/dist/functions/diff/diff-metadata.model.d.ts +20 -0
  36. package/dist/functions/diff/diff-metadata.model.js +39 -0
  37. package/dist/functions/diff/diff-metadata.model.js.map +1 -0
  38. package/dist/functions/diff/diff.model.d.ts +15 -0
  39. package/dist/functions/diff/diff.model.js +27 -0
  40. package/dist/functions/diff/diff.model.js.map +1 -0
  41. package/dist/functions/diff/diff.utility.d.ts +10 -0
  42. package/dist/functions/diff/diff.utility.js +99 -0
  43. package/dist/functions/diff/diff.utility.js.map +1 -0
  44. package/dist/functions/module/module.abstract.d.ts +12 -0
  45. package/dist/functions/module/module.abstract.js +39 -0
  46. package/dist/functions/module/module.abstract.js.map +1 -0
  47. package/dist/functions/module/module.interface.d.ts +4 -0
  48. package/dist/functions/module/module.interface.js +2 -0
  49. package/dist/functions/module/module.interface.js.map +1 -0
  50. package/dist/index.d.ts +53 -0
  51. package/dist/index.js +36 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/models/action.interface.d.ts +9 -0
  54. package/dist/models/action.interface.js +2 -0
  55. package/dist/models/action.interface.js.map +1 -0
  56. package/dist/models/app/app.interface.d.ts +4 -0
  57. package/dist/models/app/app.interface.js +2 -0
  58. package/dist/models/app/app.interface.js.map +1 -0
  59. package/dist/models/app/app.model.d.ts +23 -0
  60. package/dist/models/app/app.model.js +97 -0
  61. package/dist/models/app/app.model.js.map +1 -0
  62. package/dist/models/deployment/deployment.interface.d.ts +4 -0
  63. package/dist/models/deployment/deployment.interface.js +2 -0
  64. package/dist/models/deployment/deployment.interface.js.map +1 -0
  65. package/dist/models/deployment/deployment.model.d.ts +11 -0
  66. package/dist/models/deployment/deployment.model.js +39 -0
  67. package/dist/models/deployment/deployment.model.js.map +1 -0
  68. package/dist/models/environment/environment.interface.d.ts +7 -0
  69. package/dist/models/environment/environment.interface.js +2 -0
  70. package/dist/models/environment/environment.interface.js.map +1 -0
  71. package/dist/models/environment/environment.model.d.ts +14 -0
  72. package/dist/models/environment/environment.model.js +49 -0
  73. package/dist/models/environment/environment.model.js.map +1 -0
  74. package/dist/models/execution/execution.interface.d.ts +9 -0
  75. package/dist/models/execution/execution.interface.js +2 -0
  76. package/dist/models/execution/execution.interface.js.map +1 -0
  77. package/dist/models/execution/execution.model.d.ts +18 -0
  78. package/dist/models/execution/execution.model.js +70 -0
  79. package/dist/models/execution/execution.model.js.map +1 -0
  80. package/dist/models/image/image.interface.d.ts +7 -0
  81. package/dist/models/image/image.interface.js +2 -0
  82. package/dist/models/image/image.interface.js.map +1 -0
  83. package/dist/models/image/image.model.d.ts +21 -0
  84. package/dist/models/image/image.model.js +56 -0
  85. package/dist/models/image/image.model.js.map +1 -0
  86. package/dist/models/model.abstract.d.ts +34 -0
  87. package/dist/models/model.abstract.js +245 -0
  88. package/dist/models/model.abstract.js.map +1 -0
  89. package/dist/models/model.interface.d.ts +12 -0
  90. package/dist/models/model.interface.js +2 -0
  91. package/dist/models/model.interface.js.map +1 -0
  92. package/dist/models/pipeline/pipeline.interface.d.ts +5 -0
  93. package/dist/models/pipeline/pipeline.interface.js +2 -0
  94. package/dist/models/pipeline/pipeline.interface.js.map +1 -0
  95. package/dist/models/pipeline/pipeline.model.d.ts +14 -0
  96. package/dist/models/pipeline/pipeline.model.js +47 -0
  97. package/dist/models/pipeline/pipeline.model.js.map +1 -0
  98. package/dist/models/region/region.interface.d.ts +4 -0
  99. package/dist/models/region/region.interface.js +2 -0
  100. package/dist/models/region/region.interface.js.map +1 -0
  101. package/dist/models/region/region.model.d.ts +13 -0
  102. package/dist/models/region/region.model.js +49 -0
  103. package/dist/models/region/region.model.js.map +1 -0
  104. package/dist/models/server/server.interface.d.ts +6 -0
  105. package/dist/models/server/server.interface.js +2 -0
  106. package/dist/models/server/server.interface.js.map +1 -0
  107. package/dist/models/server/server.model.d.ts +15 -0
  108. package/dist/models/server/server.model.js +55 -0
  109. package/dist/models/server/server.model.js.map +1 -0
  110. package/dist/models/service/service.interface.d.ts +4 -0
  111. package/dist/models/service/service.interface.js +2 -0
  112. package/dist/models/service/service.interface.js.map +1 -0
  113. package/dist/models/service/service.model.d.ts +9 -0
  114. package/dist/models/service/service.model.js +33 -0
  115. package/dist/models/service/service.model.js.map +1 -0
  116. package/dist/models/support/support.interface.d.ts +5 -0
  117. package/dist/models/support/support.interface.js +2 -0
  118. package/dist/models/support/support.interface.js.map +1 -0
  119. package/dist/models/support/support.model.d.ts +14 -0
  120. package/dist/models/support/support.model.js +52 -0
  121. package/dist/models/support/support.model.js.map +1 -0
  122. package/dist/overlays/anchor.abstract.d.ts +11 -0
  123. package/dist/overlays/anchor.abstract.js +35 -0
  124. package/dist/overlays/anchor.abstract.js.map +1 -0
  125. package/dist/overlays/anchor.interface.d.ts +6 -0
  126. package/dist/overlays/anchor.interface.js +2 -0
  127. package/dist/overlays/anchor.interface.js.map +1 -0
  128. package/dist/overlays/overlay-data.repository.d.ts +20 -0
  129. package/dist/overlays/overlay-data.repository.js +69 -0
  130. package/dist/overlays/overlay-data.repository.js.map +1 -0
  131. package/dist/overlays/overlay.abstract.d.ts +16 -0
  132. package/dist/overlays/overlay.abstract.js +43 -0
  133. package/dist/overlays/overlay.abstract.js.map +1 -0
  134. package/dist/overlays/overlay.interface.d.ts +8 -0
  135. package/dist/overlays/overlay.interface.js +2 -0
  136. package/dist/overlays/overlay.interface.js.map +1 -0
  137. package/dist/overlays/overlay.service.d.ts +14 -0
  138. package/dist/overlays/overlay.service.js +41 -0
  139. package/dist/overlays/overlay.service.js.map +1 -0
  140. package/dist/resources/resource-action.interface.d.ts +6 -0
  141. package/dist/resources/resource-action.interface.js +2 -0
  142. package/dist/resources/resource-action.interface.js.map +1 -0
  143. package/dist/resources/resource-data.repository.d.ts +20 -0
  144. package/dist/resources/resource-data.repository.js +80 -0
  145. package/dist/resources/resource-data.repository.js.map +1 -0
  146. package/dist/resources/resource.abstract.d.ts +22 -0
  147. package/dist/resources/resource.abstract.js +71 -0
  148. package/dist/resources/resource.abstract.js.map +1 -0
  149. package/dist/resources/resource.interface.d.ts +9 -0
  150. package/dist/resources/resource.interface.js +2 -0
  151. package/dist/resources/resource.interface.js.map +1 -0
  152. package/dist/resources/shared-resource.abstract.d.ts +13 -0
  153. package/dist/resources/shared-resource.abstract.js +44 -0
  154. package/dist/resources/shared-resource.abstract.js.map +1 -0
  155. package/dist/services/serialization/model/model-serialization.service.d.ts +15 -0
  156. package/dist/services/serialization/model/model-serialization.service.js +138 -0
  157. package/dist/services/serialization/model/model-serialization.service.js.map +1 -0
  158. package/dist/services/serialization/resource/resource-serialization.service.d.ts +14 -0
  159. package/dist/services/serialization/resource/resource-serialization.service.js +132 -0
  160. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -0
  161. package/dist/services/state-management/local.state-provider.d.ts +8 -0
  162. package/dist/services/state-management/local.state-provider.js +18 -0
  163. package/dist/services/state-management/local.state-provider.js.map +1 -0
  164. package/dist/services/state-management/state-management.service.d.ts +12 -0
  165. package/dist/services/state-management/state-management.service.js +47 -0
  166. package/dist/services/state-management/state-management.service.js.map +1 -0
  167. package/dist/services/state-management/state-provider.interface.d.ts +5 -0
  168. package/dist/services/state-management/state-provider.interface.js +2 -0
  169. package/dist/services/state-management/state-provider.interface.js.map +1 -0
  170. package/dist/services/transaction/transaction.service.d.ts +26 -0
  171. package/dist/services/transaction/transaction.service.js +254 -0
  172. package/dist/services/transaction/transaction.service.js.map +1 -0
  173. package/dist/tsconfig.build.tsbuildinfo +1 -0
  174. package/package.json +52 -16
  175. package/src/app.type.ts +56 -0
  176. package/src/decorators/action.decorator.spec.ts +43 -0
  177. package/src/decorators/action.decorator.ts +24 -0
  178. package/src/decorators/anchor.decorator.ts +10 -0
  179. package/src/decorators/container.spec.ts +104 -0
  180. package/src/decorators/container.ts +133 -0
  181. package/src/decorators/factory.decorator.ts +13 -0
  182. package/src/decorators/model.decorator.ts +10 -0
  183. package/src/decorators/module.decorator.ts +13 -0
  184. package/src/decorators/overlay.decorator.ts +10 -0
  185. package/src/decorators/resource.decorator.ts +10 -0
  186. package/src/decorators/test-container.spec.ts +50 -0
  187. package/src/decorators/test-container.ts +56 -0
  188. package/src/functions/dependency/dependency.model.spec.ts +43 -0
  189. package/src/functions/dependency/dependency.model.ts +178 -0
  190. package/src/functions/diff/diff-metadata.model.ts +51 -0
  191. package/src/functions/diff/diff.model.ts +33 -0
  192. package/src/functions/diff/diff.utility.ts +163 -0
  193. package/src/functions/module/module.abstract.ts +59 -0
  194. package/src/functions/module/module.interface.ts +5 -0
  195. package/src/index.ts +62 -0
  196. package/src/models/action.interface.ts +35 -0
  197. package/src/models/app/app.interface.ts +5 -0
  198. package/src/models/app/app.model.ts +111 -0
  199. package/src/models/deployment/deployment.interface.ts +5 -0
  200. package/src/models/deployment/deployment.model.ts +35 -0
  201. package/src/models/environment/environment.interface.ts +6 -0
  202. package/src/models/environment/environment.model.spec.ts +125 -0
  203. package/src/models/environment/environment.model.ts +55 -0
  204. package/src/models/execution/execution.interface.ts +8 -0
  205. package/src/models/execution/execution.model.spec.ts +62 -0
  206. package/src/models/execution/execution.model.ts +89 -0
  207. package/src/models/image/image.interface.ts +8 -0
  208. package/src/models/image/image.model.ts +62 -0
  209. package/src/models/model.abstract.ts +324 -0
  210. package/src/models/model.interface.ts +42 -0
  211. package/src/models/pipeline/pipeline.interface.ts +6 -0
  212. package/src/models/pipeline/pipeline.model.ts +47 -0
  213. package/src/models/region/region.interface.ts +5 -0
  214. package/src/models/region/region.model.spec.ts +162 -0
  215. package/src/models/region/region.model.ts +48 -0
  216. package/src/models/server/server.interface.ts +7 -0
  217. package/src/models/server/server.model.ts +56 -0
  218. package/src/models/service/service.interface.ts +5 -0
  219. package/src/models/service/service.model.ts +25 -0
  220. package/src/models/support/support.interface.ts +6 -0
  221. package/src/models/support/support.model.spec.ts +78 -0
  222. package/src/models/support/support.model.ts +52 -0
  223. package/src/overlays/anchor.abstract.ts +41 -0
  224. package/src/overlays/anchor.interface.ts +7 -0
  225. package/src/overlays/anchor.spec.ts +41 -0
  226. package/src/overlays/overlay-data.repository.ts +76 -0
  227. package/src/overlays/overlay.abstract.ts +64 -0
  228. package/src/overlays/overlay.interface.ts +9 -0
  229. package/src/overlays/overlay.service.ts +38 -0
  230. package/src/overlays/overlay.spec.ts +86 -0
  231. package/src/resources/resource-action.interface.ts +9 -0
  232. package/src/resources/resource-data.repository.spec.ts +133 -0
  233. package/src/resources/resource-data.repository.ts +92 -0
  234. package/src/resources/resource.abstract.ts +108 -0
  235. package/src/resources/resource.interface.ts +7 -0
  236. package/src/resources/resource.spec.ts +60 -0
  237. package/src/resources/shared-resource.abstract.ts +53 -0
  238. package/src/resources/shared-resource.spec.ts +133 -0
  239. package/src/services/serialization/model/__snapshots__/model-serialization.service.spec.ts.snap +656 -0
  240. package/src/services/serialization/model/model-serialization.service.spec.ts +195 -0
  241. package/src/services/serialization/model/model-serialization.service.ts +172 -0
  242. package/src/services/serialization/resource/__snapshots__/resource-serialization.service.spec.ts.snap +284 -0
  243. package/src/services/serialization/resource/resource-serialization.service.spec.ts +311 -0
  244. package/src/services/serialization/resource/resource-serialization.service.ts +166 -0
  245. package/src/services/state-management/local.state-provider.spec.ts +42 -0
  246. package/src/services/state-management/local.state-provider.ts +23 -0
  247. package/src/services/state-management/state-management.service.ts +43 -0
  248. package/src/services/state-management/state-provider.interface.ts +5 -0
  249. package/src/services/transaction/__snapshots__/transaction.service.spec.ts.snap +284 -0
  250. package/src/services/transaction/transaction.service.spec.ts +823 -0
  251. package/src/services/transaction/transaction.service.ts +386 -0
  252. package/test/app.e2e-spec.ts +104 -0
  253. package/test/helpers/test-classes.ts +31 -0
  254. package/test/models/__snapshots__/model.e2e-spec.ts.snap +451 -0
  255. package/test/models/model.e2e-spec.ts +366 -0
  256. package/tsconfig.build.json +4 -0
  257. package/tsconfig.json +9 -0
  258. package/index.js +0 -5
@@ -0,0 +1,656 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Model Serialization Service UT serialize() should serialize a non-empty app 1`] = `
4
+ {
5
+ "anchors": [],
6
+ "dependencies": [
7
+ {
8
+ "behaviors": [
9
+ {
10
+ "forAction": "delete",
11
+ "onAction": "delete",
12
+ "onField": "name",
13
+ "toField": "imageId",
14
+ },
15
+ ],
16
+ "from": "app=test-app",
17
+ "relationship": {
18
+ "onField": "name",
19
+ "toField": "imageId",
20
+ "type": "parent",
21
+ },
22
+ "to": "image=image:0.0.1,app=test-app",
23
+ },
24
+ {
25
+ "behaviors": [
26
+ {
27
+ "forAction": "delete",
28
+ "onAction": "delete",
29
+ "onField": "name",
30
+ "toField": "regionId",
31
+ },
32
+ ],
33
+ "from": "app=test-app",
34
+ "relationship": {
35
+ "onField": "name",
36
+ "toField": "regionId",
37
+ "type": "parent",
38
+ },
39
+ "to": "region=region-1,app=test-app",
40
+ },
41
+ {
42
+ "behaviors": [
43
+ {
44
+ "forAction": "delete",
45
+ "onAction": "delete",
46
+ "onField": "name",
47
+ "toField": "serverKey",
48
+ },
49
+ ],
50
+ "from": "app=test-app",
51
+ "relationship": {
52
+ "onField": "name",
53
+ "toField": "serverKey",
54
+ "type": "parent",
55
+ },
56
+ "to": "server=backend,app=test-app",
57
+ },
58
+ {
59
+ "behaviors": [
60
+ {
61
+ "forAction": "delete",
62
+ "onAction": "delete",
63
+ "onField": "name",
64
+ "toField": "serverKey",
65
+ },
66
+ ],
67
+ "from": "app=test-app",
68
+ "relationship": {
69
+ "onField": "name",
70
+ "toField": "serverKey",
71
+ "type": "parent",
72
+ },
73
+ "to": "support=nginx,app=test-app",
74
+ },
75
+ {
76
+ "behaviors": [
77
+ {
78
+ "forAction": "add",
79
+ "onAction": "add",
80
+ "onField": "serverKey",
81
+ "toField": "name",
82
+ },
83
+ {
84
+ "forAction": "update",
85
+ "onAction": "add",
86
+ "onField": "serverKey",
87
+ "toField": "name",
88
+ },
89
+ ],
90
+ "from": "support=nginx,app=test-app",
91
+ "relationship": {
92
+ "onField": "serverKey",
93
+ "toField": "name",
94
+ "type": "child",
95
+ },
96
+ "to": "app=test-app",
97
+ },
98
+ {
99
+ "behaviors": [
100
+ {
101
+ "forAction": "add",
102
+ "onAction": "add",
103
+ "onField": "serverKey",
104
+ "toField": "imageId",
105
+ },
106
+ {
107
+ "forAction": "update",
108
+ "onAction": "add",
109
+ "onField": "serverKey",
110
+ "toField": "imageId",
111
+ },
112
+ ],
113
+ "from": "server=backend,app=test-app",
114
+ "relationship": undefined,
115
+ "to": "image=image:0.0.1,app=test-app",
116
+ },
117
+ {
118
+ "behaviors": [
119
+ {
120
+ "forAction": "add",
121
+ "onAction": "add",
122
+ "onField": "serverKey",
123
+ "toField": "name",
124
+ },
125
+ {
126
+ "forAction": "update",
127
+ "onAction": "add",
128
+ "onField": "serverKey",
129
+ "toField": "name",
130
+ },
131
+ ],
132
+ "from": "server=backend,app=test-app",
133
+ "relationship": {
134
+ "onField": "serverKey",
135
+ "toField": "name",
136
+ "type": "child",
137
+ },
138
+ "to": "app=test-app",
139
+ },
140
+ {
141
+ "behaviors": [
142
+ {
143
+ "forAction": "add",
144
+ "onAction": "add",
145
+ "onField": "imageId",
146
+ "toField": "name",
147
+ },
148
+ {
149
+ "forAction": "update",
150
+ "onAction": "add",
151
+ "onField": "imageId",
152
+ "toField": "name",
153
+ },
154
+ ],
155
+ "from": "image=image:0.0.1,app=test-app",
156
+ "relationship": {
157
+ "onField": "imageId",
158
+ "toField": "name",
159
+ "type": "child",
160
+ },
161
+ "to": "app=test-app",
162
+ },
163
+ {
164
+ "behaviors": [
165
+ {
166
+ "forAction": "delete",
167
+ "onAction": "delete",
168
+ "onField": "imageId",
169
+ "toField": "serverKey",
170
+ },
171
+ ],
172
+ "from": "image=image:0.0.1,app=test-app",
173
+ "relationship": undefined,
174
+ "to": "server=backend,app=test-app",
175
+ },
176
+ {
177
+ "behaviors": [
178
+ {
179
+ "forAction": "add",
180
+ "onAction": "add",
181
+ "onField": "regionId",
182
+ "toField": "name",
183
+ },
184
+ {
185
+ "forAction": "update",
186
+ "onAction": "add",
187
+ "onField": "regionId",
188
+ "toField": "name",
189
+ },
190
+ ],
191
+ "from": "region=region-1,app=test-app",
192
+ "relationship": {
193
+ "onField": "regionId",
194
+ "toField": "name",
195
+ "type": "child",
196
+ },
197
+ "to": "app=test-app",
198
+ },
199
+ {
200
+ "behaviors": [
201
+ {
202
+ "forAction": "delete",
203
+ "onAction": "delete",
204
+ "onField": "regionId",
205
+ "toField": "environmentName",
206
+ },
207
+ ],
208
+ "from": "region=region-1,app=test-app",
209
+ "relationship": {
210
+ "onField": "regionId",
211
+ "toField": "environmentName",
212
+ "type": "parent",
213
+ },
214
+ "to": "environment=qa,region=region-1,app=test-app",
215
+ },
216
+ {
217
+ "behaviors": [
218
+ {
219
+ "forAction": "add",
220
+ "onAction": "add",
221
+ "onField": "environmentName",
222
+ "toField": "regionId",
223
+ },
224
+ {
225
+ "forAction": "update",
226
+ "onAction": "add",
227
+ "onField": "environmentName",
228
+ "toField": "regionId",
229
+ },
230
+ ],
231
+ "from": "environment=qa,region=region-1,app=test-app",
232
+ "relationship": {
233
+ "onField": "environmentName",
234
+ "toField": "regionId",
235
+ "type": "child",
236
+ },
237
+ "to": "region=region-1,app=test-app",
238
+ },
239
+ ],
240
+ "models": {
241
+ "app=test-app": {
242
+ "className": "App",
243
+ "model": {
244
+ "name": "test-app",
245
+ },
246
+ },
247
+ "environment=qa,region=region-1,app=test-app": {
248
+ "className": "Environment",
249
+ "model": {
250
+ "environmentName": "qa",
251
+ "environmentVariables": {
252
+ "key": "value",
253
+ },
254
+ },
255
+ },
256
+ "image=image:0.0.1,app=test-app": {
257
+ "className": "Image",
258
+ "model": {
259
+ "dockerOptions": {
260
+ "buildArgs": {},
261
+ "dockerfilePath": "/Dockerfile",
262
+ "quiet": undefined,
263
+ },
264
+ "imageId": "0.0.1",
265
+ "imageName": "image",
266
+ "imageTag": "0.0.1",
267
+ },
268
+ },
269
+ "region=region-1,app=test-app": {
270
+ "className": "Region",
271
+ "model": {
272
+ "regionId": "region-1",
273
+ },
274
+ },
275
+ "server=backend,app=test-app": {
276
+ "className": "Server",
277
+ "model": {
278
+ "image": {
279
+ "context": "image=image:0.0.1,app=test-app",
280
+ },
281
+ "serverKey": "backend",
282
+ },
283
+ },
284
+ "support=nginx,app=test-app": {
285
+ "className": "Support",
286
+ "model": {
287
+ "applicationType": "nginx",
288
+ "serverKey": "nginx",
289
+ },
290
+ },
291
+ },
292
+ "modules": [],
293
+ "overlays": [],
294
+ }
295
+ `;
296
+
297
+ exports[`Model Serialization Service UT serialize() should serialize an empty app 1`] = `
298
+ {
299
+ "anchors": [],
300
+ "dependencies": [],
301
+ "models": {
302
+ "app=test-app": {
303
+ "className": "App",
304
+ "model": {
305
+ "name": "test-app",
306
+ },
307
+ },
308
+ },
309
+ "modules": [],
310
+ "overlays": [],
311
+ }
312
+ `;
313
+
314
+ exports[`Model Serialization Service UT serialize() should serialize only boundary members 1`] = `
315
+ {
316
+ "anchors": [],
317
+ "dependencies": [
318
+ {
319
+ "behaviors": [
320
+ {
321
+ "forAction": "add",
322
+ "onAction": "add",
323
+ "onField": "regionId",
324
+ "toField": "name",
325
+ },
326
+ {
327
+ "forAction": "update",
328
+ "onAction": "add",
329
+ "onField": "regionId",
330
+ "toField": "name",
331
+ },
332
+ ],
333
+ "from": "region=region-1,app=test-app",
334
+ "relationship": {
335
+ "onField": "regionId",
336
+ "toField": "name",
337
+ "type": "child",
338
+ },
339
+ "to": "app=test-app",
340
+ },
341
+ {
342
+ "behaviors": [
343
+ {
344
+ "forAction": "delete",
345
+ "onAction": "delete",
346
+ "onField": "regionId",
347
+ "toField": "environmentName",
348
+ },
349
+ ],
350
+ "from": "region=region-1,app=test-app",
351
+ "relationship": {
352
+ "onField": "regionId",
353
+ "toField": "environmentName",
354
+ "type": "parent",
355
+ },
356
+ "to": "environment=qa,region=region-1,app=test-app",
357
+ },
358
+ {
359
+ "behaviors": [
360
+ {
361
+ "forAction": "delete",
362
+ "onAction": "delete",
363
+ "onField": "name",
364
+ "toField": "regionId",
365
+ },
366
+ ],
367
+ "from": "app=test-app",
368
+ "relationship": {
369
+ "onField": "name",
370
+ "toField": "regionId",
371
+ "type": "parent",
372
+ },
373
+ "to": "region=region-1,app=test-app",
374
+ },
375
+ {
376
+ "behaviors": [
377
+ {
378
+ "forAction": "add",
379
+ "onAction": "add",
380
+ "onField": "environmentName",
381
+ "toField": "regionId",
382
+ },
383
+ {
384
+ "forAction": "update",
385
+ "onAction": "add",
386
+ "onField": "environmentName",
387
+ "toField": "regionId",
388
+ },
389
+ ],
390
+ "from": "environment=qa,region=region-1,app=test-app",
391
+ "relationship": {
392
+ "onField": "environmentName",
393
+ "toField": "regionId",
394
+ "type": "child",
395
+ },
396
+ "to": "region=region-1,app=test-app",
397
+ },
398
+ ],
399
+ "models": {
400
+ "app=test-app": {
401
+ "className": "App",
402
+ "model": {
403
+ "name": "test-app",
404
+ },
405
+ },
406
+ "environment=qa,region=region-1,app=test-app": {
407
+ "className": "Environment",
408
+ "model": {
409
+ "environmentName": "qa",
410
+ "environmentVariables": {},
411
+ },
412
+ },
413
+ "region=region-1,app=test-app": {
414
+ "className": "Region",
415
+ "model": {
416
+ "regionId": "region-1",
417
+ },
418
+ },
419
+ },
420
+ "modules": [],
421
+ "overlays": [],
422
+ }
423
+ `;
424
+
425
+ exports[`Model Serialization Service UT serialize() should serialize when multiple models have dependency on same model 1`] = `
426
+ {
427
+ "anchors": [],
428
+ "dependencies": [
429
+ {
430
+ "behaviors": [
431
+ {
432
+ "forAction": "delete",
433
+ "onAction": "delete",
434
+ "onField": "name",
435
+ "toField": "imageId",
436
+ },
437
+ ],
438
+ "from": "app=test-app",
439
+ "relationship": {
440
+ "onField": "name",
441
+ "toField": "imageId",
442
+ "type": "parent",
443
+ },
444
+ "to": "image=image:0.0.1,app=test-app",
445
+ },
446
+ {
447
+ "behaviors": [
448
+ {
449
+ "forAction": "delete",
450
+ "onAction": "delete",
451
+ "onField": "name",
452
+ "toField": "serverKey",
453
+ },
454
+ ],
455
+ "from": "app=test-app",
456
+ "relationship": {
457
+ "onField": "name",
458
+ "toField": "serverKey",
459
+ "type": "parent",
460
+ },
461
+ "to": "server=server-0,app=test-app",
462
+ },
463
+ {
464
+ "behaviors": [
465
+ {
466
+ "forAction": "delete",
467
+ "onAction": "delete",
468
+ "onField": "name",
469
+ "toField": "serverKey",
470
+ },
471
+ ],
472
+ "from": "app=test-app",
473
+ "relationship": {
474
+ "onField": "name",
475
+ "toField": "serverKey",
476
+ "type": "parent",
477
+ },
478
+ "to": "server=server-1,app=test-app",
479
+ },
480
+ {
481
+ "behaviors": [
482
+ {
483
+ "forAction": "add",
484
+ "onAction": "add",
485
+ "onField": "serverKey",
486
+ "toField": "imageId",
487
+ },
488
+ {
489
+ "forAction": "update",
490
+ "onAction": "add",
491
+ "onField": "serverKey",
492
+ "toField": "imageId",
493
+ },
494
+ ],
495
+ "from": "server=server-1,app=test-app",
496
+ "relationship": undefined,
497
+ "to": "image=image:0.0.1,app=test-app",
498
+ },
499
+ {
500
+ "behaviors": [
501
+ {
502
+ "forAction": "add",
503
+ "onAction": "add",
504
+ "onField": "serverKey",
505
+ "toField": "name",
506
+ },
507
+ {
508
+ "forAction": "update",
509
+ "onAction": "add",
510
+ "onField": "serverKey",
511
+ "toField": "name",
512
+ },
513
+ ],
514
+ "from": "server=server-1,app=test-app",
515
+ "relationship": {
516
+ "onField": "serverKey",
517
+ "toField": "name",
518
+ "type": "child",
519
+ },
520
+ "to": "app=test-app",
521
+ },
522
+ {
523
+ "behaviors": [
524
+ {
525
+ "forAction": "add",
526
+ "onAction": "add",
527
+ "onField": "imageId",
528
+ "toField": "name",
529
+ },
530
+ {
531
+ "forAction": "update",
532
+ "onAction": "add",
533
+ "onField": "imageId",
534
+ "toField": "name",
535
+ },
536
+ ],
537
+ "from": "image=image:0.0.1,app=test-app",
538
+ "relationship": {
539
+ "onField": "imageId",
540
+ "toField": "name",
541
+ "type": "child",
542
+ },
543
+ "to": "app=test-app",
544
+ },
545
+ {
546
+ "behaviors": [
547
+ {
548
+ "forAction": "delete",
549
+ "onAction": "delete",
550
+ "onField": "imageId",
551
+ "toField": "serverKey",
552
+ },
553
+ ],
554
+ "from": "image=image:0.0.1,app=test-app",
555
+ "relationship": undefined,
556
+ "to": "server=server-0,app=test-app",
557
+ },
558
+ {
559
+ "behaviors": [
560
+ {
561
+ "forAction": "delete",
562
+ "onAction": "delete",
563
+ "onField": "imageId",
564
+ "toField": "serverKey",
565
+ },
566
+ ],
567
+ "from": "image=image:0.0.1,app=test-app",
568
+ "relationship": undefined,
569
+ "to": "server=server-1,app=test-app",
570
+ },
571
+ {
572
+ "behaviors": [
573
+ {
574
+ "forAction": "add",
575
+ "onAction": "add",
576
+ "onField": "serverKey",
577
+ "toField": "imageId",
578
+ },
579
+ {
580
+ "forAction": "update",
581
+ "onAction": "add",
582
+ "onField": "serverKey",
583
+ "toField": "imageId",
584
+ },
585
+ ],
586
+ "from": "server=server-0,app=test-app",
587
+ "relationship": undefined,
588
+ "to": "image=image:0.0.1,app=test-app",
589
+ },
590
+ {
591
+ "behaviors": [
592
+ {
593
+ "forAction": "add",
594
+ "onAction": "add",
595
+ "onField": "serverKey",
596
+ "toField": "name",
597
+ },
598
+ {
599
+ "forAction": "update",
600
+ "onAction": "add",
601
+ "onField": "serverKey",
602
+ "toField": "name",
603
+ },
604
+ ],
605
+ "from": "server=server-0,app=test-app",
606
+ "relationship": {
607
+ "onField": "serverKey",
608
+ "toField": "name",
609
+ "type": "child",
610
+ },
611
+ "to": "app=test-app",
612
+ },
613
+ ],
614
+ "models": {
615
+ "app=test-app": {
616
+ "className": "App",
617
+ "model": {
618
+ "name": "test-app",
619
+ },
620
+ },
621
+ "image=image:0.0.1,app=test-app": {
622
+ "className": "Image",
623
+ "model": {
624
+ "dockerOptions": {
625
+ "buildArgs": {},
626
+ "dockerfilePath": "/Dockerfile",
627
+ "quiet": undefined,
628
+ },
629
+ "imageId": "0.0.1",
630
+ "imageName": "image",
631
+ "imageTag": "0.0.1",
632
+ },
633
+ },
634
+ "server=server-0,app=test-app": {
635
+ "className": "Server",
636
+ "model": {
637
+ "image": {
638
+ "context": "image=image:0.0.1,app=test-app",
639
+ },
640
+ "serverKey": "server-0",
641
+ },
642
+ },
643
+ "server=server-1,app=test-app": {
644
+ "className": "Server",
645
+ "model": {
646
+ "image": {
647
+ "context": "image=image:0.0.1,app=test-app",
648
+ },
649
+ "serverKey": "server-1",
650
+ },
651
+ },
652
+ },
653
+ "modules": [],
654
+ "overlays": [],
655
+ }
656
+ `;