8.5 KB253 lines
Blame
1import { imgSnapshotTest, urlSnapshotTest } from '../../helpers/util.ts';
2
3describe.skip('architecture diagram', () => {
4 it('should render a simple architecture diagram with groups', () => {
5 imgSnapshotTest(
6 `architecture-beta
7 group api(cloud)[API]
8
9 service db(database)[Database] in api
10 service disk1(disk)[Storage] in api
11 service disk2(disk)[Storage] in api
12 service server(server)[Server] in api
13 service gateway(internet)[Gateway]
14
15 db L--R server
16 disk1 T--B server
17 disk2 T--B db
18 server T--B gateway
19 `
20 );
21 });
22 it('should render a simple architecture diagram with titleAndAccessibilities', () => {
23 imgSnapshotTest(
24 `architecture-beta
25 title Simple Architecture Diagram
26 accTitle: Accessibility Title
27 accDescr: Accessibility Description
28 group api(cloud)[API]
29
30 service db(database)[Database] in api
31 service disk1(disk)[Storage] in api
32 service disk2(disk)[Storage] in api
33 service server(server)[Server] in api
34
35 db:L -- R:server
36 disk1:T -- B:server
37 disk2:T -- B:db
38 `
39 );
40 });
41 it('should render an architecture diagram with groups within groups', () => {
42 imgSnapshotTest(
43 `architecture-beta
44 group api[API]
45 group public[Public API] in api
46 group private[Private API] in api
47
48 service serv1(server)[Server] in public
49
50 service serv2(server)[Server] in private
51 service db(database)[Database] in private
52
53 service gateway(internet)[Gateway] in api
54
55 serv1 B--T serv2
56 serv2 L--R db
57 serv1 L--R gateway
58 `
59 );
60 });
61 it('should render an architecture diagram with the fallback icon', () => {
62 imgSnapshotTest(
63 `architecture-beta
64 service unknown(iconnamedoesntexist)[Unknown Icon]
65 `
66 );
67 });
68 it('should render an architecture diagram with split directioning', () => {
69 imgSnapshotTest(
70 `architecture-beta
71 service db(database)[Database]
72 service s3(disk)[Storage]
73 service serv1(server)[Server 1]
74 service serv2(server)[Server 2]
75 service disk(disk)[Disk]
76
77 db L--R s3
78 serv1 L--T s3
79 serv2 L--B s3
80 serv1 T--B disk
81 `
82 );
83 });
84 it('should render an architecture diagram with directional arrows', () => {
85 imgSnapshotTest(
86 `architecture-beta
87 service servC(server)[Server 1]
88 service servL(server)[Server 2]
89 service servR(server)[Server 3]
90 service servT(server)[Server 4]
91 service servB(server)[Server 5]
92
93 servC (L--R) servL
94 servC (R--L) servR
95 servC (T--B) servT
96 servC (B--T) servB
97
98 servL (T--L) servT
99 servL (B--L) servB
100 servR (T--R) servT
101 servR (B--R) servB
102 `
103 );
104 });
105 it('should render an architecture diagram with group edges', () => {
106 imgSnapshotTest(
107 `architecture-beta
108 group left_group(cloud)[Left]
109 group right_group(cloud)[Right]
110 group top_group(cloud)[Top]
111 group bottom_group(cloud)[Bottom]
112 group center_group(cloud)[Center]
113
114 service left_disk(disk)[Disk] in left_group
115 service right_disk(disk)[Disk] in right_group
116 service top_disk(disk)[Disk] in top_group
117 service bottom_disk(disk)[Disk] in bottom_group
118 service center_disk(disk)[Disk] in center_group
119
120 left_disk{group} (R--L) center_disk{group}
121 right_disk{group} (L--R) center_disk{group}
122 top_disk{group} (B--T) center_disk{group}
123 bottom_disk{group} (T--B) center_disk{group}
124 `
125 );
126 });
127 it('should render an architecture diagram with edge labels', () => {
128 imgSnapshotTest(
129 `architecture-beta
130 service servC(server)[Server 1]
131 service servL(server)[Server 2]
132 service servR(server)[Server 3]
133 service servT(server)[Server 4]
134 service servB(server)[Server 5]
135
136 servC L-[Label]-R servL
137 servC R-[Label]-L servR
138 servC T-[Label]-B servT
139 servC B-[Label]-T servB
140
141 servL T-[Label]-L servT
142 servL B-[Label]-L servB
143 servR T-[Label]-R servT
144 servR B-[Label]-R servB
145 `
146 );
147 });
148 it('should render an architecture diagram with simple junction edges', () => {
149 imgSnapshotTest(
150 `architecture-beta
151 service left_disk(disk)[Disk]
152 service top_disk(disk)[Disk]
153 service bottom_disk(disk)[Disk]
154 service top_gateway(internet)[Gateway]
155 service bottom_gateway(internet)[Gateway]
156 junction juncC
157 junction juncR
158
159 left_disk R--L juncC
160 top_disk B--T juncC
161 bottom_disk T--B juncC
162 juncC R--L juncR
163 top_gateway B--T juncR
164 bottom_gateway T--B juncR
165 `
166 );
167 });
168 it('should render an architecture diagram with complex junction edges', () => {
169 imgSnapshotTest(
170 `architecture-beta
171 group left
172 group right
173 service left_disk(disk)[Disk] in left
174 service top_disk(disk)[Disk] in left
175 service bottom_disk(disk)[Disk] in left
176 service top_gateway(internet)[Gateway] in right
177 service bottom_gateway(internet)[Gateway] in right
178 junction juncC in left
179 junction juncR in right
180
181 left_disk R--L juncC
182 top_disk B--T juncC
183 bottom_disk T--B juncC
184
185
186 top_gateway (B--T juncR
187 bottom_gateway (T--B juncR
188
189 juncC{group} R--L) juncR{group}
190 `
191 );
192 });
193
194 it('should render an architecture diagram with a reasonable height', () => {
195 imgSnapshotTest(
196 `architecture-beta
197 group federated(cloud)[Federated Environment]
198 service server1(server)[System] in federated
199 service edge(server)[Edge Device] in federated
200 server1:R -- L:edge
201
202 group on_prem(cloud)[Hub]
203 service firewall(server)[Firewall Device] in on_prem
204 service server(server)[Server] in on_prem
205 firewall:R -- L:server
206
207 service db1(database)[db1] in on_prem
208 service db2(database)[db2] in on_prem
209 service db3(database)[db3] in on_prem
210 service db4(database)[db4] in on_prem
211 service db5(database)[db5] in on_prem
212 service db6(database)[db6] in on_prem
213
214 junction mid in on_prem
215 server:B -- T:mid
216
217 junction 1Leftofmid in on_prem
218 1Leftofmid:R -- L:mid
219 1Leftofmid:B -- T:db1
220
221 junction 2Leftofmid in on_prem
222 2Leftofmid:R -- L:1Leftofmid
223 2Leftofmid:B -- T:db2
224
225 junction 3Leftofmid in on_prem
226 3Leftofmid:R -- L:2Leftofmid
227 3Leftofmid:B -- T:db3
228
229 junction 1RightOfMid in on_prem
230 mid:R -- L:1RightOfMid
231 1RightOfMid:B -- T:db4
232
233 junction 2RightOfMid in on_prem
234 1RightOfMid:R -- L:2RightOfMid
235 2RightOfMid:B -- T:db5
236
237 junction 3RightOfMid in on_prem
238 2RightOfMid:R -- L:3RightOfMid
239 3RightOfMid:B -- T:db6
240
241 edge:R -- L:firewall
242 `
243 );
244 });
245});
246
247// Skipped as the layout is not deterministic, and causes issues in E2E tests.
248describe.skip('architecture - external', () => {
249 it('should allow adding external icons', () => {
250 urlSnapshotTest('/architecture-external.html');
251 });
252});
253