11import type { ComposeSpecification } from "@dokploy/server" ;
22import {
3- addSuffixToServiceNetworks ,
4- generateRandomHash ,
3+ addSuffixToServiceNetworks ,
4+ generateRandomHash ,
55} from "@dokploy/server" ;
66import { expect , test } from "vitest" ;
77import { parse } from "yaml" ;
@@ -23,30 +23,30 @@ services:
2323` ;
2424
2525test ( "Add suffix to networks in services" , ( ) => {
26- const composeData = parse ( composeFile ) as ComposeSpecification ;
26+ const composeData = parse ( composeFile ) as ComposeSpecification ;
2727
28- const suffix = generateRandomHash ( ) ;
28+ const suffix = generateRandomHash ( ) ;
2929
30- if ( ! composeData ?. services ) {
31- return ;
32- }
33- const services = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
34- const actualComposeData = { ...composeData , services } ;
30+ if ( ! composeData ?. services ) {
31+ return ;
32+ }
33+ const services = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
34+ const actualComposeData = { ...composeData , services } ;
3535
36- expect ( actualComposeData ?. services ?. web ?. networks ) . toContain (
37- `frontend-${ suffix } ` ,
38- ) ;
36+ expect ( actualComposeData ?. services ?. web ?. networks ) . toContain (
37+ `frontend-${ suffix } ` ,
38+ ) ;
3939
40- expect ( actualComposeData ?. services ?. api ?. networks ) . toContain (
41- `backend-${ suffix } ` ,
42- ) ;
40+ expect ( actualComposeData ?. services ?. api ?. networks ) . toContain (
41+ `backend-${ suffix } ` ,
42+ ) ;
4343
44- const apiNetworks = actualComposeData ?. services ?. api ?. networks ;
44+ const apiNetworks = actualComposeData ?. services ?. api ?. networks ;
4545
46- expect ( apiNetworks ) . toBeDefined ( ) ;
47- expect ( actualComposeData ?. services ?. api ?. networks ) . toContain (
48- `backend-${ suffix } ` ,
49- ) ;
46+ expect ( apiNetworks ) . toBeDefined ( ) ;
47+ expect ( actualComposeData ?. services ?. api ?. networks ) . toContain (
48+ `backend-${ suffix } ` ,
49+ ) ;
5050} ) ;
5151
5252// Caso 2: Objeto con aliases
@@ -67,29 +67,29 @@ networks:
6767` ;
6868
6969test ( "Add suffix to networks in services with aliases" , ( ) => {
70- const composeData = parse ( composeFile2 ) as ComposeSpecification ;
70+ const composeData = parse ( composeFile2 ) as ComposeSpecification ;
7171
72- const suffix = generateRandomHash ( ) ;
72+ const suffix = generateRandomHash ( ) ;
7373
74- if ( ! composeData ?. services ) {
75- return ;
76- }
77- const services = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
78- const actualComposeData = { ...composeData , services } ;
74+ if ( ! composeData ?. services ) {
75+ return ;
76+ }
77+ const services = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
78+ const actualComposeData = { ...composeData , services } ;
7979
80- expect ( actualComposeData . services ?. api ?. networks ) . toHaveProperty (
81- `frontend-${ suffix } ` ,
82- ) ;
80+ expect ( actualComposeData . services ?. api ?. networks ) . toHaveProperty (
81+ `frontend-${ suffix } ` ,
82+ ) ;
8383
84- const networkConfig = actualComposeData ?. services ?. api ?. networks as {
85- [ key : string ] : { aliases ?: string [ ] } ;
86- } ;
87- expect ( networkConfig [ `frontend-${ suffix } ` ] ) . toBeDefined ( ) ;
88- expect ( networkConfig [ `frontend-${ suffix } ` ] ?. aliases ) . toContain ( "api" ) ;
84+ const networkConfig = actualComposeData ?. services ?. api ?. networks as {
85+ [ key : string ] : { aliases ?: string [ ] } ;
86+ } ;
87+ expect ( networkConfig [ `frontend-${ suffix } ` ] ) . toBeDefined ( ) ;
88+ expect ( networkConfig [ `frontend-${ suffix } ` ] ?. aliases ) . toContain ( "api" ) ;
8989
90- expect ( actualComposeData . services ?. api ?. networks ) . not . toHaveProperty (
91- "frontend-ash" ,
92- ) ;
90+ expect ( actualComposeData . services ?. api ?. networks ) . not . toHaveProperty (
91+ "frontend-ash" ,
92+ ) ;
9393} ) ;
9494
9595const composeFile3 = `
@@ -107,19 +107,19 @@ networks:
107107` ;
108108
109109test ( "Add suffix to networks in services (Object with simple networks)" , ( ) => {
110- const composeData = parse ( composeFile3 ) as ComposeSpecification ;
110+ const composeData = parse ( composeFile3 ) as ComposeSpecification ;
111111
112- const suffix = generateRandomHash ( ) ;
112+ const suffix = generateRandomHash ( ) ;
113113
114- if ( ! composeData ?. services ) {
115- return ;
116- }
117- const services = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
118- const actualComposeData = { ...composeData , services } ;
114+ if ( ! composeData ?. services ) {
115+ return ;
116+ }
117+ const services = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
118+ const actualComposeData = { ...composeData , services } ;
119119
120- expect ( actualComposeData . services ?. redis ?. networks ) . toHaveProperty (
121- `backend-${ suffix } ` ,
122- ) ;
120+ expect ( actualComposeData . services ?. redis ?. networks ) . toHaveProperty (
121+ `backend-${ suffix } ` ,
122+ ) ;
123123} ) ;
124124
125125const composeFileCombined = `
@@ -153,36 +153,36 @@ networks:
153153` ;
154154
155155test ( "Add suffix to networks in services (combined case)" , ( ) => {
156- const composeData = parse ( composeFileCombined ) as ComposeSpecification ;
157-
158- const suffix = generateRandomHash ( ) ;
159-
160- if ( ! composeData ?. services ) {
161- return ;
162- }
163- const services = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
164- const actualComposeData = { ...composeData , services } ;
165-
166- // Caso 1: ListOfStrings
167- expect ( actualComposeData . services ?. web ?. networks ) . toContain (
168- `frontend-${ suffix } ` ,
169- ) ;
170- expect ( actualComposeData . services ?. web ?. networks ) . toContain (
171- `backend-${ suffix } ` ,
172- ) ;
173-
174- // Caso 2: Objeto con aliases
175- const apiNetworks = actualComposeData . services ?. api ?. networks as {
176- [ key : string ] : unknown ;
177- } ;
178- expect ( apiNetworks ) . toHaveProperty ( `frontend-${ suffix } ` ) ;
179- expect ( apiNetworks [ `frontend-${ suffix } ` ] ) . toBeDefined ( ) ;
180- expect ( apiNetworks ) . not . toHaveProperty ( "frontend" ) ;
181-
182- // Caso 3: Objeto con redes simples
183- const redisNetworks = actualComposeData . services ?. redis ?. networks ;
184- expect ( redisNetworks ) . toHaveProperty ( `backend-${ suffix } ` ) ;
185- expect ( redisNetworks ) . not . toHaveProperty ( "backend" ) ;
156+ const composeData = parse ( composeFileCombined ) as ComposeSpecification ;
157+
158+ const suffix = generateRandomHash ( ) ;
159+
160+ if ( ! composeData ?. services ) {
161+ return ;
162+ }
163+ const services = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
164+ const actualComposeData = { ...composeData , services } ;
165+
166+ // Caso 1: ListOfStrings
167+ expect ( actualComposeData . services ?. web ?. networks ) . toContain (
168+ `frontend-${ suffix } ` ,
169+ ) ;
170+ expect ( actualComposeData . services ?. web ?. networks ) . toContain (
171+ `backend-${ suffix } ` ,
172+ ) ;
173+
174+ // Caso 2: Objeto con aliases
175+ const apiNetworks = actualComposeData . services ?. api ?. networks as {
176+ [ key : string ] : unknown ;
177+ } ;
178+ expect ( apiNetworks ) . toHaveProperty ( `frontend-${ suffix } ` ) ;
179+ expect ( apiNetworks [ `frontend-${ suffix } ` ] ) . toBeDefined ( ) ;
180+ expect ( apiNetworks ) . not . toHaveProperty ( "frontend" ) ;
181+
182+ // Caso 3: Objeto con redes simples
183+ const redisNetworks = actualComposeData . services ?. redis ?. networks ;
184+ expect ( redisNetworks ) . toHaveProperty ( `backend-${ suffix } ` ) ;
185+ expect ( redisNetworks ) . not . toHaveProperty ( "backend" ) ;
186186} ) ;
187187
188188const composeFile7 = `
@@ -196,18 +196,18 @@ services:
196196` ;
197197
198198test ( "It shouldn't add suffix to dokploy-network in services" , ( ) => {
199- const composeData = parse ( composeFile7 ) as ComposeSpecification ;
199+ const composeData = parse ( composeFile7 ) as ComposeSpecification ;
200200
201- const suffix = generateRandomHash ( ) ;
201+ const suffix = generateRandomHash ( ) ;
202202
203- if ( ! composeData ?. services ) {
204- return ;
205- }
206- const networks = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
207- const service = networks . web ;
203+ if ( ! composeData ?. services ) {
204+ return ;
205+ }
206+ const networks = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
207+ const service = networks . web ;
208208
209- expect ( service ) . toBeDefined ( ) ;
210- expect ( service ?. networks ) . toContain ( "dokploy-network" ) ;
209+ expect ( service ) . toBeDefined ( ) ;
210+ expect ( service ?. networks ) . toContain ( "dokploy-network" ) ;
211211} ) ;
212212
213213const composeFile8 = `
@@ -245,31 +245,31 @@ services:
245245` ;
246246
247247test ( "It shouldn't add suffix to dokploy-network in services multiples cases" , ( ) => {
248- const composeData = parse ( composeFile8 ) as ComposeSpecification ;
248+ const composeData = parse ( composeFile8 ) as ComposeSpecification ;
249249
250- const suffix = generateRandomHash ( ) ;
250+ const suffix = generateRandomHash ( ) ;
251251
252- if ( ! composeData ?. services ) {
253- return ;
254- }
255- const networks = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
256- const service = networks . web ;
257- const api = networks . api ;
258- const redis = networks . redis ;
259- const db = networks . db ;
252+ if ( ! composeData ?. services ) {
253+ return ;
254+ }
255+ const networks = addSuffixToServiceNetworks ( composeData . services , suffix ) ;
256+ const service = networks . web ;
257+ const api = networks . api ;
258+ const redis = networks . redis ;
259+ const db = networks . db ;
260260
261- const dbNetworks = db ?. networks as {
262- [ key : string ] : unknown ;
263- } ;
261+ const dbNetworks = db ?. networks as {
262+ [ key : string ] : unknown ;
263+ } ;
264264
265- const apiNetworks = api ?. networks as {
266- [ key : string ] : unknown ;
267- } ;
265+ const apiNetworks = api ?. networks as {
266+ [ key : string ] : unknown ;
267+ } ;
268268
269- expect ( service ) . toBeDefined ( ) ;
270- expect ( service ?. networks ) . toContain ( "dokploy-network" ) ;
269+ expect ( service ) . toBeDefined ( ) ;
270+ expect ( service ?. networks ) . toContain ( "dokploy-network" ) ;
271271
272- expect ( redis ?. networks ) . toHaveProperty ( "dokploy-network" ) ;
273- expect ( dbNetworks [ "dokploy-network" ] ) . toBeDefined ( ) ;
274- expect ( apiNetworks [ "dokploy-network" ] ) . toBeDefined ( ) ;
272+ expect ( redis ?. networks ) . toHaveProperty ( "dokploy-network" ) ;
273+ expect ( dbNetworks [ "dokploy-network" ] ) . toBeDefined ( ) ;
274+ expect ( apiNetworks [ "dokploy-network" ] ) . toBeDefined ( ) ;
275275} ) ;
0 commit comments