@apso/cli 0.4.2 → 0.6.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.
Files changed (71) hide show
  1. package/README.md +796 -6
  2. package/dist/commands/server/new.js +1 -1
  3. package/dist/commands/server/scaffold.js +20 -9
  4. package/dist/lib/apsorc-parser.d.ts +3 -0
  5. package/dist/lib/apsorc-parser.js +11 -6
  6. package/dist/lib/controller.js +3 -1
  7. package/dist/lib/dto.js +9 -9
  8. package/dist/lib/entity.js +6 -5
  9. package/dist/lib/guards.d.ts +47 -0
  10. package/dist/lib/guards.js +176 -0
  11. package/dist/lib/index.d.ts +1 -0
  12. package/dist/lib/index.js +5 -1
  13. package/dist/lib/module.js +3 -1
  14. package/dist/lib/templates/guards/auth.guard.eta +228 -0
  15. package/dist/lib/templates/guards/guards.module.eta +114 -0
  16. package/dist/lib/templates/guards/index.eta +22 -0
  17. package/dist/lib/templates/guards/scope.guard.eta +327 -0
  18. package/dist/lib/types/auth.d.ts +203 -0
  19. package/dist/lib/types/auth.js +60 -0
  20. package/dist/lib/types/entity.d.ts +36 -1
  21. package/dist/lib/types/index.d.ts +2 -1
  22. package/dist/lib/types/index.js +8 -0
  23. package/dist/lib/types/relationship.d.ts +1 -1
  24. package/dist/lib/utils/casing.js +5 -5
  25. package/dist/lib/utils/field.js +2 -1
  26. package/dist/lib/utils/file-system.js +1 -1
  27. package/dist/lib/utils/relationships/parse-v1.js +2 -1
  28. package/dist/lib/utils/relationships/parse.js +117 -32
  29. package/dist/lib/utils/relationships/parse.spec.js +168 -141
  30. package/dist/test-nested-relationships.js +10 -10
  31. package/dist/tests/templates/entities/types/array-template.spec.js +45 -45
  32. package/dist/tests/templates/entities/types/bigint-template.spec.js +43 -43
  33. package/dist/tests/templates/entities/types/boolean-template.spec.js +44 -44
  34. package/dist/tests/templates/entities/types/bytea-template.spec.js +35 -35
  35. package/dist/tests/templates/entities/types/char-template.spec.js +35 -35
  36. package/dist/tests/templates/entities/types/date-template.spec.js +29 -29
  37. package/dist/tests/templates/entities/types/decimal-field-validation.spec.js +46 -46
  38. package/dist/tests/templates/entities/types/decimal-template.spec.js +46 -46
  39. package/dist/tests/templates/entities/types/double-template.spec.js +37 -34
  40. package/dist/tests/templates/entities/types/enum-template.spec.js +42 -42
  41. package/dist/tests/templates/entities/types/float-template.spec.js +37 -34
  42. package/dist/tests/templates/entities/types/geometry-template.spec.js +31 -31
  43. package/dist/tests/templates/entities/types/inet-template.spec.js +36 -36
  44. package/dist/tests/templates/entities/types/int4range-template.spec.js +45 -33
  45. package/dist/tests/templates/entities/types/integer-template.spec.js +40 -40
  46. package/dist/tests/templates/entities/types/interval-template.spec.js +35 -35
  47. package/dist/tests/templates/entities/types/json-plain-template.spec.js +27 -27
  48. package/dist/tests/templates/entities/types/json-template.spec.js +19 -19
  49. package/dist/tests/templates/entities/types/jsonb-template.spec.js +19 -19
  50. package/dist/tests/templates/entities/types/money-template.spec.js +35 -35
  51. package/dist/tests/templates/entities/types/numeric-template.spec.js +44 -44
  52. package/dist/tests/templates/entities/types/point-template.spec.js +37 -31
  53. package/dist/tests/templates/entities/types/polygon-template.spec.js +43 -31
  54. package/dist/tests/templates/entities/types/real-template.spec.js +34 -34
  55. package/dist/tests/templates/entities/types/serial-template.spec.js +62 -62
  56. package/dist/tests/templates/entities/types/smallint-template.spec.js +43 -43
  57. package/dist/tests/templates/entities/types/string-template.spec.js +59 -59
  58. package/dist/tests/templates/entities/types/text-template.spec.js +37 -37
  59. package/dist/tests/templates/entities/types/time-template.spec.js +35 -35
  60. package/dist/tests/templates/entities/types/timestamp-template.spec.js +39 -39
  61. package/dist/tests/templates/entities/types/timetz-template.spec.js +35 -35
  62. package/dist/tests/templates/entities/types/tsvector-template.spec.js +28 -28
  63. package/dist/tests/templates/entities/types/uuid-template.spec.js +43 -43
  64. package/dist/tests/templates/entities/types/varchar-template.spec.js +59 -56
  65. package/dist/tests/templates/entities/types/xml-template.spec.js +28 -28
  66. package/dist/tests/templates/entities/utils/template-test-utils.d.ts +1 -1
  67. package/dist/tests/templates/entities/utils/template-test-utils.js +3 -3
  68. package/dist/tests/templates/entities/uuid-entity-template.spec.js +138 -138
  69. package/dist/tests/utils/relationship-deduplication.spec.js +11 -11
  70. package/oclif.manifest.json +1 -1
  71. package/package.json +1 -1
@@ -2,110 +2,110 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const template_test_utils_1 = require("../utils/template-test-utils");
4
4
  const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)('String Entity Template Tests', () => {
5
+ (0, globals_1.describe)("String Entity Template Tests", () => {
6
6
  // Setup Eta configuration once before all tests
7
7
  (0, globals_1.beforeAll)(() => {
8
8
  (0, template_test_utils_1.configureEta)();
9
9
  });
10
- const templatePath = './entities/entity-col-string';
10
+ const templatePath = "./entities/entity-col-string";
11
11
  const testCases = [
12
12
  {
13
- name: 'should render basic string field correctly',
13
+ name: "should render basic string field correctly",
14
14
  field: {
15
- name: 'fullName',
16
- dataType: 'string',
17
- nullable: false
15
+ name: "fullName",
16
+ dataType: "string",
17
+ nullable: false,
18
18
  },
19
19
  assertions: [
20
- { type: 'contains', text: '@IsOptional({ groups: [UPDATE] })' },
21
- { type: 'contains', text: '@IsNotEmpty({ groups: [CREATE] })' },
22
- { type: 'contains', text: '@Column({ type: "text", nullable: false' },
23
- { type: 'contains', text: 'fullName: string;' },
24
- { type: 'notContains', text: '@Index()' },
25
- { type: 'notContains', text: '@PrimaryColumn()' },
26
- { type: 'notContains', text: '@IsEmail' },
27
- ]
20
+ { type: "contains", text: "@IsOptional({ groups: [UPDATE] })" },
21
+ { type: "contains", text: "@IsNotEmpty({ groups: [CREATE] })" },
22
+ { type: "contains", text: '@Column({ type: "text", nullable: false' },
23
+ { type: "contains", text: "fullName: string;" },
24
+ { type: "notContains", text: "@Index()" },
25
+ { type: "notContains", text: "@PrimaryColumn()" },
26
+ { type: "notContains", text: "@IsEmail" },
27
+ ],
28
28
  },
29
29
  {
30
- name: 'should render nullable string field correctly',
30
+ name: "should render nullable string field correctly",
31
31
  field: {
32
- name: 'description',
33
- dataType: 'string',
34
- nullable: true
32
+ name: "description",
33
+ dataType: "string",
34
+ nullable: true,
35
35
  },
36
36
  assertions: [
37
- { type: 'contains', text: '@IsOptional({ groups: [UPDATE] })' },
38
- { type: 'notContains', text: '@IsNotEmpty({ groups: [CREATE] })' },
39
- { type: 'contains', text: '@Column({ type: "text", nullable: true' },
40
- { type: 'contains', text: 'description: string;' }
41
- ]
37
+ { type: "contains", text: "@IsOptional({ groups: [UPDATE] })" },
38
+ { type: "notContains", text: "@IsNotEmpty({ groups: [CREATE] })" },
39
+ { type: "contains", text: '@Column({ type: "text", nullable: true' },
40
+ { type: "contains", text: "description: string;" },
41
+ ],
42
42
  },
43
43
  {
44
- name: 'should render string field with default value correctly',
44
+ name: "should render string field with default value correctly",
45
45
  field: {
46
- name: 'status',
47
- dataType: 'string',
46
+ name: "status",
47
+ dataType: "string",
48
48
  nullable: false,
49
- default: 'active'
49
+ default: "active",
50
50
  },
51
51
  assertions: [
52
- { type: 'contains', text: 'default: \'active\'' },
53
- { type: 'contains', text: 'status: string;' }
54
- ]
52
+ { type: "contains", text: "default: 'active'" },
53
+ { type: "contains", text: "status: string;" },
54
+ ],
55
55
  },
56
56
  {
57
- name: 'should render indexed string field correctly',
57
+ name: "should render indexed string field correctly",
58
58
  field: {
59
- name: 'email',
60
- dataType: 'string',
59
+ name: "email",
60
+ dataType: "string",
61
61
  nullable: false,
62
- index: true
62
+ index: true,
63
63
  },
64
64
  assertions: [
65
- { type: 'contains', text: '@Index()' },
66
- { type: 'contains', text: 'email: string;' }
67
- ]
65
+ { type: "contains", text: "@Index()" },
66
+ { type: "contains", text: "email: string;" },
67
+ ],
68
68
  },
69
69
  {
70
- name: 'should render primary key string field correctly',
70
+ name: "should render primary key string field correctly",
71
71
  field: {
72
- name: 'id',
73
- dataType: 'string',
72
+ name: "id",
73
+ dataType: "string",
74
74
  nullable: false,
75
- primary: true
75
+ primary: true,
76
76
  },
77
77
  assertions: [
78
- { type: 'contains', text: '@PrimaryColumn()' },
79
- { type: 'contains', text: 'id: string;' }
80
- ]
78
+ { type: "contains", text: "@PrimaryColumn()" },
79
+ { type: "contains", text: "id: string;" },
80
+ ],
81
81
  },
82
82
  {
83
- name: 'should render unique string field correctly',
83
+ name: "should render unique string field correctly",
84
84
  field: {
85
- name: 'username',
86
- dataType: 'string',
85
+ name: "username",
86
+ dataType: "string",
87
87
  nullable: false,
88
- unique: true
88
+ unique: true,
89
89
  },
90
90
  assertions: [
91
- { type: 'contains', text: 'unique: true' },
92
- { type: 'contains', text: 'username: string;' }
93
- ]
91
+ { type: "contains", text: "unique: true" },
92
+ { type: "contains", text: "username: string;" },
93
+ ],
94
94
  },
95
95
  {
96
- name: 'should render email field correctly',
96
+ name: "should render email field correctly",
97
97
  field: {
98
- name: 'email',
99
- dataType: 'string',
98
+ name: "email",
99
+ dataType: "string",
100
100
  nullable: false,
101
101
  // eslint-disable-next-line camelcase
102
- is_email: true
102
+ is_email: true,
103
103
  },
104
104
  assertions: [
105
- { type: 'contains', text: '@IsEmail(' },
106
- { type: 'contains', text: 'email: string;' }
107
- ]
108
- }
105
+ { type: "contains", text: "@IsEmail(" },
106
+ { type: "contains", text: "email: string;" },
107
+ ],
108
+ },
109
109
  ];
110
110
  (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
111
111
  });
@@ -2,69 +2,69 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const template_test_utils_1 = require("../utils/template-test-utils");
4
4
  const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)('Text Entity Template Tests', () => {
5
+ (0, globals_1.describe)("Text Entity Template Tests", () => {
6
6
  // Setup Eta configuration once before all tests
7
7
  (0, globals_1.beforeAll)(() => {
8
8
  (0, template_test_utils_1.configureEta)();
9
9
  });
10
- const templatePath = './entities/entity-col-text';
10
+ const templatePath = "./entities/entity-col-text";
11
11
  const testCases = [
12
12
  {
13
- name: 'should render basic text field correctly',
13
+ name: "should render basic text field correctly",
14
14
  field: {
15
- name: 'content',
16
- dataType: 'string',
17
- nullable: false
15
+ name: "content",
16
+ dataType: "string",
17
+ nullable: false,
18
18
  },
19
19
  assertions: [
20
- { type: 'contains', text: '@Column({ type: "text"' },
21
- { type: 'contains', text: '@IsOptional({ groups: [UPDATE] })' },
22
- { type: 'contains', text: '@IsNotEmpty({ groups: [CREATE] })' },
23
- { type: 'contains', text: 'content: string;' },
24
- { type: 'notContains', text: '@Index()' }
25
- ]
20
+ { type: "contains", text: '@Column({ type: "text"' },
21
+ { type: "contains", text: "@IsOptional({ groups: [UPDATE] })" },
22
+ { type: "contains", text: "@IsNotEmpty({ groups: [CREATE] })" },
23
+ { type: "contains", text: "content: string;" },
24
+ { type: "notContains", text: "@Index()" },
25
+ ],
26
26
  },
27
27
  {
28
- name: 'should render nullable text field correctly',
28
+ name: "should render nullable text field correctly",
29
29
  field: {
30
- name: 'optionalContent',
31
- dataType: 'string',
32
- nullable: true
30
+ name: "optionalContent",
31
+ dataType: "string",
32
+ nullable: true,
33
33
  },
34
34
  assertions: [
35
- { type: 'contains', text: '@Column({ type: "text"' },
36
- { type: 'contains', text: 'nullable: true' },
37
- { type: 'contains', text: '@IsOptional({ groups: [UPDATE] })' },
38
- { type: 'contains', text: 'optionalContent: string;' }
39
- ]
35
+ { type: "contains", text: '@Column({ type: "text"' },
36
+ { type: "contains", text: "nullable: true" },
37
+ { type: "contains", text: "@IsOptional({ groups: [UPDATE] })" },
38
+ { type: "contains", text: "optionalContent: string;" },
39
+ ],
40
40
  },
41
41
  {
42
- name: 'should render text field with default value correctly',
42
+ name: "should render text field with default value correctly",
43
43
  field: {
44
- name: 'defaultContent',
45
- dataType: 'string',
44
+ name: "defaultContent",
45
+ dataType: "string",
46
46
  nullable: false,
47
- default: "'empty'"
47
+ default: "'empty'",
48
48
  },
49
49
  assertions: [
50
- { type: 'contains', text: '@Column({ type: "text"' },
51
- { type: 'contains', text: 'defaultContent: string;' }
52
- ]
50
+ { type: "contains", text: '@Column({ type: "text"' },
51
+ { type: "contains", text: "defaultContent: string;" },
52
+ ],
53
53
  },
54
54
  {
55
- name: 'should render indexed text field correctly',
55
+ name: "should render indexed text field correctly",
56
56
  field: {
57
- name: 'indexedContent',
58
- dataType: 'string',
57
+ name: "indexedContent",
58
+ dataType: "string",
59
59
  nullable: false,
60
- index: true
60
+ index: true,
61
61
  },
62
62
  assertions: [
63
- { type: 'contains', text: '@Column({ type: "text"' },
64
- { type: 'contains', text: '@Index()' },
65
- { type: 'contains', text: 'indexedContent: string;' }
66
- ]
67
- }
63
+ { type: "contains", text: '@Column({ type: "text"' },
64
+ { type: "contains", text: "@Index()" },
65
+ { type: "contains", text: "indexedContent: string;" },
66
+ ],
67
+ },
68
68
  ];
69
69
  (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
70
70
  });
@@ -2,67 +2,67 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const template_test_utils_1 = require("../utils/template-test-utils");
4
4
  const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)('Time Entity Template Tests', () => {
5
+ (0, globals_1.describe)("Time Entity Template Tests", () => {
6
6
  // Setup Eta configuration once before all tests
7
7
  (0, globals_1.beforeAll)(() => {
8
8
  (0, template_test_utils_1.configureEta)();
9
9
  });
10
- const templatePath = './entities/entity-col-time';
10
+ const templatePath = "./entities/entity-col-time";
11
11
  const testCases = [
12
12
  {
13
- name: 'should render basic time field correctly',
13
+ name: "should render basic time field correctly",
14
14
  field: {
15
- name: 'startTime',
16
- dataType: 'string',
17
- nullable: false
15
+ name: "startTime",
16
+ dataType: "string",
17
+ nullable: false,
18
18
  },
19
19
  assertions: [
20
- { type: 'contains', text: '@Column({ "type": "time"' },
21
- { type: 'contains', text: 'startTime: string;' },
22
- { type: 'notContains', text: '@Index()' },
23
- { type: 'notContains', text: '@PrimaryColumn()' }
24
- ]
20
+ { type: "contains", text: '@Column({ "type": "time"' },
21
+ { type: "contains", text: "startTime: string;" },
22
+ { type: "notContains", text: "@Index()" },
23
+ { type: "notContains", text: "@PrimaryColumn()" },
24
+ ],
25
25
  },
26
26
  {
27
- name: 'should render nullable time field correctly',
27
+ name: "should render nullable time field correctly",
28
28
  field: {
29
- name: 'optionalTime',
30
- dataType: 'string',
31
- nullable: true
29
+ name: "optionalTime",
30
+ dataType: "string",
31
+ nullable: true,
32
32
  },
33
33
  assertions: [
34
- { type: 'contains', text: '@Column({ "type": "time"' },
35
- { type: 'contains', text: 'optionalTime: string;' }
36
- ]
34
+ { type: "contains", text: '@Column({ "type": "time"' },
35
+ { type: "contains", text: "optionalTime: string;" },
36
+ ],
37
37
  },
38
38
  {
39
- name: 'should render time field with default value correctly',
39
+ name: "should render time field with default value correctly",
40
40
  field: {
41
- name: 'defaultTime',
42
- dataType: 'string',
41
+ name: "defaultTime",
42
+ dataType: "string",
43
43
  nullable: false,
44
- default: '12:00:00'
44
+ default: "12:00:00",
45
45
  },
46
46
  assertions: [
47
- { type: 'contains', text: '@Column({ "type": "time"' },
48
- { type: 'contains', text: 'default: 12:00:00' },
49
- { type: 'contains', text: 'defaultTime: string;' }
50
- ]
47
+ { type: "contains", text: '@Column({ "type": "time"' },
48
+ { type: "contains", text: "default: 12:00:00" },
49
+ { type: "contains", text: "defaultTime: string;" },
50
+ ],
51
51
  },
52
52
  {
53
- name: 'should render indexed time field correctly',
53
+ name: "should render indexed time field correctly",
54
54
  field: {
55
- name: 'indexedTime',
56
- dataType: 'string',
55
+ name: "indexedTime",
56
+ dataType: "string",
57
57
  nullable: false,
58
- index: true
58
+ index: true,
59
59
  },
60
60
  assertions: [
61
- { type: 'contains', text: '@Column({ "type": "time"' },
62
- { type: 'contains', text: '@Index()' },
63
- { type: 'contains', text: 'indexedTime: string;' }
64
- ]
65
- }
61
+ { type: "contains", text: '@Column({ "type": "time"' },
62
+ { type: "contains", text: "@Index()" },
63
+ { type: "contains", text: "indexedTime: string;" },
64
+ ],
65
+ },
66
66
  ];
67
67
  (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
68
68
  });
@@ -2,72 +2,72 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const template_test_utils_1 = require("../utils/template-test-utils");
4
4
  const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)('Timestamp Templates Tests', () => {
5
+ (0, globals_1.describe)("Timestamp Templates Tests", () => {
6
6
  // Setup Eta configuration once before all tests
7
7
  (0, globals_1.beforeAll)(() => {
8
8
  (0, template_test_utils_1.configureEta)();
9
9
  });
10
- (0, globals_1.describe)('Timestamp Entity Template Tests', () => {
11
- const templatePath = './entities/entity-col-timestamp';
10
+ (0, globals_1.describe)("Timestamp Entity Template Tests", () => {
11
+ const templatePath = "./entities/entity-col-timestamp";
12
12
  const testCases = [
13
13
  {
14
- name: 'should render basic timestamp field correctly',
14
+ name: "should render basic timestamp field correctly",
15
15
  field: {
16
- name: 'createdAt',
17
- dataType: 'Date',
18
- nullable: false
16
+ name: "createdAt",
17
+ dataType: "Date",
18
+ nullable: false,
19
19
  },
20
20
  assertions: [
21
- { type: 'contains', text: "@Column({ type: 'timestamp'" },
22
- { type: 'contains', text: 'nullable: false' },
23
- { type: 'contains', text: 'createdAt: Date;' }
24
- ]
21
+ { type: "contains", text: "@Column({ type: 'timestamp'" },
22
+ { type: "contains", text: "nullable: false" },
23
+ { type: "contains", text: "createdAt: Date;" },
24
+ ],
25
25
  },
26
26
  {
27
- name: 'should render nullable timestamp field correctly',
27
+ name: "should render nullable timestamp field correctly",
28
28
  field: {
29
- name: 'optionalTimestamp',
30
- dataType: 'Date',
31
- nullable: true
29
+ name: "optionalTimestamp",
30
+ dataType: "Date",
31
+ nullable: true,
32
32
  },
33
33
  assertions: [
34
- { type: 'contains', text: "@Column({ type: 'timestamp'" },
35
- { type: 'contains', text: 'nullable: true' },
36
- { type: 'contains', text: 'optionalTimestamp: Date;' }
37
- ]
38
- }
34
+ { type: "contains", text: "@Column({ type: 'timestamp'" },
35
+ { type: "contains", text: "nullable: true" },
36
+ { type: "contains", text: "optionalTimestamp: Date;" },
37
+ ],
38
+ },
39
39
  ];
40
40
  (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
41
41
  });
42
- (0, globals_1.describe)('TimestampWithTimeZone Entity Template Tests', () => {
43
- const templatePath = './entities/entity-col-timestamptz';
42
+ (0, globals_1.describe)("TimestampWithTimeZone Entity Template Tests", () => {
43
+ const templatePath = "./entities/entity-col-timestamptz";
44
44
  const testCases = [
45
45
  {
46
- name: 'should render basic timestamptz field correctly',
46
+ name: "should render basic timestamptz field correctly",
47
47
  field: {
48
- name: 'createdAtUtc',
49
- dataType: 'Date',
50
- nullable: false
48
+ name: "createdAtUtc",
49
+ dataType: "Date",
50
+ nullable: false,
51
51
  },
52
52
  assertions: [
53
- { type: 'contains', text: "@Column({ type: 'timestamptz'" },
54
- { type: 'contains', text: 'nullable: false' },
55
- { type: 'contains', text: 'createdAtUtc: Date;' }
56
- ]
53
+ { type: "contains", text: "@Column({ type: 'timestamptz'" },
54
+ { type: "contains", text: "nullable: false" },
55
+ { type: "contains", text: "createdAtUtc: Date;" },
56
+ ],
57
57
  },
58
58
  {
59
- name: 'should render nullable timestamptz field correctly',
59
+ name: "should render nullable timestamptz field correctly",
60
60
  field: {
61
- name: 'optionalTimestamptz',
62
- dataType: 'Date',
63
- nullable: true
61
+ name: "optionalTimestamptz",
62
+ dataType: "Date",
63
+ nullable: true,
64
64
  },
65
65
  assertions: [
66
- { type: 'contains', text: "@Column({ type: 'timestamptz'" },
67
- { type: 'contains', text: 'nullable: true' },
68
- { type: 'contains', text: 'optionalTimestamptz: Date;' }
69
- ]
70
- }
66
+ { type: "contains", text: "@Column({ type: 'timestamptz'" },
67
+ { type: "contains", text: "nullable: true" },
68
+ { type: "contains", text: "optionalTimestamptz: Date;" },
69
+ ],
70
+ },
71
71
  ];
72
72
  (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
73
73
  });
@@ -2,67 +2,67 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const template_test_utils_1 = require("../utils/template-test-utils");
4
4
  const globals_1 = require("@jest/globals");
5
- (0, globals_1.describe)('TimeWithTimeZone Entity Template Tests', () => {
5
+ (0, globals_1.describe)("TimeWithTimeZone Entity Template Tests", () => {
6
6
  // Setup Eta configuration once before all tests
7
7
  (0, globals_1.beforeAll)(() => {
8
8
  (0, template_test_utils_1.configureEta)();
9
9
  });
10
- const templatePath = './entities/entity-col-timetz';
10
+ const templatePath = "./entities/entity-col-timetz";
11
11
  const testCases = [
12
12
  {
13
- name: 'should render basic timetz field correctly',
13
+ name: "should render basic timetz field correctly",
14
14
  field: {
15
- name: 'globalTime',
16
- dataType: 'string',
17
- nullable: false
15
+ name: "globalTime",
16
+ dataType: "string",
17
+ nullable: false,
18
18
  },
19
19
  assertions: [
20
- { type: 'contains', text: '@Column({ "type": "timetz"' },
21
- { type: 'contains', text: 'globalTime: string;' },
22
- { type: 'notContains', text: '@Index()' },
23
- { type: 'notContains', text: '@PrimaryColumn()' }
24
- ]
20
+ { type: "contains", text: '@Column({ "type": "timetz"' },
21
+ { type: "contains", text: "globalTime: string;" },
22
+ { type: "notContains", text: "@Index()" },
23
+ { type: "notContains", text: "@PrimaryColumn()" },
24
+ ],
25
25
  },
26
26
  {
27
- name: 'should render nullable timetz field correctly',
27
+ name: "should render nullable timetz field correctly",
28
28
  field: {
29
- name: 'optionalGlobalTime',
30
- dataType: 'string',
31
- nullable: true
29
+ name: "optionalGlobalTime",
30
+ dataType: "string",
31
+ nullable: true,
32
32
  },
33
33
  assertions: [
34
- { type: 'contains', text: '@Column({ "type": "timetz"' },
35
- { type: 'contains', text: 'optionalGlobalTime: string;' }
36
- ]
34
+ { type: "contains", text: '@Column({ "type": "timetz"' },
35
+ { type: "contains", text: "optionalGlobalTime: string;" },
36
+ ],
37
37
  },
38
38
  {
39
- name: 'should render timetz field with default value correctly',
39
+ name: "should render timetz field with default value correctly",
40
40
  field: {
41
- name: 'defaultGlobalTime',
42
- dataType: 'string',
41
+ name: "defaultGlobalTime",
42
+ dataType: "string",
43
43
  nullable: false,
44
- default: '12:00:00+00'
44
+ default: "12:00:00+00",
45
45
  },
46
46
  assertions: [
47
- { type: 'contains', text: '@Column({ "type": "timetz"' },
48
- { type: 'contains', text: 'default: 12:00:00+00' },
49
- { type: 'contains', text: 'defaultGlobalTime: string;' }
50
- ]
47
+ { type: "contains", text: '@Column({ "type": "timetz"' },
48
+ { type: "contains", text: "default: 12:00:00+00" },
49
+ { type: "contains", text: "defaultGlobalTime: string;" },
50
+ ],
51
51
  },
52
52
  {
53
- name: 'should render indexed timetz field correctly',
53
+ name: "should render indexed timetz field correctly",
54
54
  field: {
55
- name: 'indexedGlobalTime',
56
- dataType: 'string',
55
+ name: "indexedGlobalTime",
56
+ dataType: "string",
57
57
  nullable: false,
58
- index: true
58
+ index: true,
59
59
  },
60
60
  assertions: [
61
- { type: 'contains', text: '@Column({ "type": "timetz"' },
62
- { type: 'contains', text: '@Index()' },
63
- { type: 'contains', text: 'indexedGlobalTime: string;' }
64
- ]
65
- }
61
+ { type: "contains", text: '@Column({ "type": "timetz"' },
62
+ { type: "contains", text: "@Index()" },
63
+ { type: "contains", text: "indexedGlobalTime: string;" },
64
+ ],
65
+ },
66
66
  ];
67
67
  (0, template_test_utils_1.runTemplateTests)(templatePath, testCases);
68
68
  });