@likec4/generators 1.38.0 → 1.39.0

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.
@@ -1,102 +0,0 @@
1
- import { Builder } from '@likec4/core/builder'
2
- import type { aux, LikeC4ViewModel } from '@likec4/core/model'
3
- import type { LayoutedView, ProcessedView } from '@likec4/core/types'
4
- import { expect, test, vi } from 'vitest'
5
- import { fakeComputedView3Levels, fakeDiagram, fakeDiagram2 } from '../__mocks__/data'
6
- import { generateD2 } from './generate-d2'
7
-
8
- const b = Builder
9
- .specification({
10
- elements: {
11
- actor: {},
12
- system: {},
13
- component: {},
14
- },
15
- deployments: {
16
- env: {},
17
- vm: {},
18
- },
19
- tags: {
20
- t1: {},
21
- },
22
- })
23
- .model(({ actor, system, component, rel }, _) =>
24
- _(
25
- actor('alice', 'Alice'),
26
- actor('bob', 'Bob'),
27
- system('cloud', 'Cloud').with(
28
- component('backend', 'Backend').with(
29
- component('api', 'API'),
30
- component('db', 'DB'),
31
- ),
32
- component('frontend'),
33
- ),
34
- rel('alice', 'cloud.frontend', {
35
- title: 'uses \n at home',
36
- }),
37
- rel('bob', 'cloud.frontend', {
38
- title: 'uses \n at work',
39
- }),
40
- rel('cloud.backend.api', 'cloud.backend.db'),
41
- rel('cloud.frontend', 'cloud.backend.api', {
42
- title: 'requests',
43
- tags: ['t1'],
44
- }),
45
- )
46
- )
47
- // Test Element View
48
-
49
- test('generate D2 - landscape', () => {
50
- const m = b
51
- .views(({ view, $include }) =>
52
- view('index', {
53
- title: 'Layout',
54
- description: 'description',
55
- }).with(
56
- $include('*'),
57
- )
58
- )
59
- .toLikeC4Model()
60
- expect(generateD2(m.view('index'))).toMatchSnapshot()
61
- })
62
-
63
- test('generate D2 - element view', () => {
64
- const m = b
65
- .views(({ viewOf, $include }) =>
66
- viewOf('v1', 'cloud').with(
67
- $include('*'),
68
- )
69
- )
70
- .toLikeC4Model()
71
- expect(generateD2(m.view('v1'))).toMatchSnapshot()
72
- })
73
-
74
- test('generate D2 - element view 3 levels', () => {
75
- const m = b
76
- .views(({ viewOf, $include }) =>
77
- viewOf('v2', 'cloud.backend').with(
78
- $include('*'),
79
- $include('* -> cloud._'),
80
- )
81
- )
82
- .toLikeC4Model()
83
- expect(generateD2(m.view('v2'))).toMatchSnapshot()
84
- })
85
-
86
- const mockViewModel = vi.fn(function($view: ProcessedView) {
87
- return {
88
- $view,
89
- } as unknown as LikeC4ViewModel<aux.Unknown, LayoutedView<aux.Unknown>>
90
- })
91
-
92
- test('generate D2 - fakeDiagram', () => {
93
- expect(generateD2(mockViewModel(fakeDiagram))).toMatchSnapshot()
94
- })
95
-
96
- test('generate D2 - fakeDiagram2', () => {
97
- expect(generateD2(mockViewModel(fakeDiagram2))).toMatchSnapshot()
98
- })
99
-
100
- test('generate D2 - fakeComputedView 3 Levels', () => {
101
- expect(generateD2(mockViewModel(fakeComputedView3Levels))).toMatchSnapshot()
102
- })
@@ -1,55 +0,0 @@
1
- // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2
-
3
- exports[`generate mermaid - fakeComputedView 3 Levels 1`] = `
4
- "---
5
- title: "Context: Cloud"
6
- ---
7
- graph TB
8
- Amazon[amazon]
9
- subgraph Cloud["cloud"]
10
- subgraph Cloud.Backend["backend"]
11
- Cloud.Backend.Graphql[graphql]
12
- Cloud.Backend.Storage[storage]
13
- end
14
- Cloud.FrontendAdminPanel[adminPanel]
15
- Cloud.FrontendDashboard[dashboard]
16
- end
17
- Customer[customer]
18
- Support[support]
19
- Cloud.FrontendDashboard -.-> Cloud.Backend.Graphql
20
- Cloud.FrontendAdminPanel -.-> Cloud.Backend.Graphql
21
- Cloud.Backend.Storage -.-> Amazon
22
- Cloud.Backend.Graphql -.-> Cloud.Backend.Storage
23
- Support -.-> Cloud.FrontendAdminPanel
24
- Customer -.-> Cloud.FrontendDashboard
25
- "
26
- `;
27
-
28
- exports[`generate mermaid - fakeDiagram 1`] = `
29
- "graph TB
30
- Amazon[amazon]
31
- subgraph Cloud["cloud"]
32
- Cloud.Backend[backend]
33
- Cloud.Frontend[frontend]
34
- end
35
- Customer[customer]
36
- Support[support]
37
- Cloud.Frontend -. "requests" .-> Cloud.Backend
38
- Cloud.Backend -.-> Amazon
39
- Support -.-> Cloud.Frontend
40
- Customer -. "opens" .-> Cloud.Frontend
41
- "
42
- `;
43
-
44
- exports[`generate mermaid - fakeDiagram2 1`] = `
45
- "---
46
- title: "frontend"
47
- ---
48
- graph TB
49
- Client[client]
50
- SystemBackend[backend]
51
- SystemFrontend[frontend]
52
- SystemFrontend -. "requests" .-> SystemBackend
53
- Client -. "opens" .-> SystemFrontend
54
- "
55
- `;
@@ -1,23 +0,0 @@
1
- import type { LikeC4ViewModel } from '@likec4/core/model'
2
- import type { aux, ProcessedView } from '@likec4/core/types'
3
- import { expect, test, vi } from 'vitest'
4
- import { fakeComputedView3Levels, fakeDiagram, fakeDiagram2 } from '../__mocks__/data'
5
- import { generateMermaid } from './generate-mmd'
6
-
7
- const mockViewModel = vi.fn(function($view: ProcessedView) {
8
- return {
9
- $view,
10
- } as unknown as LikeC4ViewModel<aux.Unknown>
11
- })
12
-
13
- test('generate mermaid - fakeDiagram', () => {
14
- expect(generateMermaid(mockViewModel(fakeDiagram))).toMatchSnapshot()
15
- })
16
-
17
- test('generate mermaid - fakeDiagram2', () => {
18
- expect(generateMermaid(mockViewModel(fakeDiagram2))).toMatchSnapshot()
19
- })
20
-
21
- test('generate mermaid - fakeComputedView 3 Levels', () => {
22
- expect(generateMermaid(mockViewModel(fakeComputedView3Levels))).toMatchSnapshot()
23
- })
@@ -1,56 +0,0 @@
1
- import type { Aux, SpecAux } from '@likec4/core/types';
2
-
3
- export type $Specs = SpecAux<
4
- // Element kinds
5
- | "actor"
6
- | "component"
7
- | "system",
8
- // Deployment kinds
9
- | "env"
10
- | "vm",
11
- // Relationship kinds
12
- | "dislike"
13
- | "like",
14
- // Tags
15
- | "tag1"
16
- | "tag2",
17
- // Metadata keys
18
- | "key1"
19
- | "key2"
20
- >
21
-
22
- export type $Aux = Aux<
23
- "computed",
24
- // Elements
25
- | "alice"
26
- | "bob"
27
- | "cloud"
28
- | "cloud.backend"
29
- | "cloud.frontend"
30
- | "cloud.backend.api"
31
- | "cloud.backend.db",
32
- // Deployments
33
- | "dev"
34
- | "prod"
35
- | "dev.api"
36
- | "dev.vm1"
37
- | "prod.vm1"
38
- | "prod.vm2",
39
- // Views
40
- | "view1"
41
- | "view2",
42
- // Project ID
43
- "from-builder",
44
- $Specs
45
- >
46
-
47
- export type $ElementId = $Aux['ElementId']
48
- export type $DeploymentId = $Aux['DeploymentId']
49
- export type $ViewId = $Aux['ViewId']
50
-
51
- export type $ElementKind = $Aux['ElementKind']
52
- export type $RelationKind = $Aux['RelationKind']
53
- export type $DeploymentKind = $Aux['DeploymentKind']
54
- export type $Tag = $Aux['Tag']
55
- export type $Tags = readonly $Aux['Tag'][]
56
- export type $MetadataKey = $Aux['MetadataKey']