@reldens/storage 0.89.0 → 0.90.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 (24) hide show
  1. package/CLAUDE.md +11 -2
  2. package/lib/entity-templates/entities-translations.template +3 -0
  3. package/lib/generators/entities-generation.js +12 -1
  4. package/lib/generators/entities-translations-generation.js +40 -4
  5. package/package.json +1 -1
  6. package/tests/fixtures/{expected-entities-prisma → expected-entities}/entities/test-categories-entity.js +70 -70
  7. package/tests/fixtures/{expected-entities-prisma → expected-entities}/entities/test-products-entity.js +95 -95
  8. package/tests/fixtures/{expected-entities-mikro-orm → expected-entities}/entities/test-reviews-entity.js +84 -84
  9. package/tests/fixtures/{expected-entities-mikro-orm → expected-entities}/entities-config.js +4 -4
  10. package/tests/fixtures/expected-entities/entities-translations.js +53 -0
  11. package/tests/run-tests.js +2 -2
  12. package/tests/utils/test-helpers.js +1 -1
  13. package/tests/utils/test-runner.js +1 -1
  14. package/tests/fixtures/expected-entities-mikro-orm/entities/test-categories-entity.js +0 -70
  15. package/tests/fixtures/expected-entities-mikro-orm/entities/test-products-entity.js +0 -95
  16. package/tests/fixtures/expected-entities-mikro-orm/entities-translations.js +0 -13
  17. package/tests/fixtures/expected-entities-objection-js/entities/test-categories-entity.js +0 -70
  18. package/tests/fixtures/expected-entities-objection-js/entities/test-products-entity.js +0 -95
  19. package/tests/fixtures/expected-entities-objection-js/entities/test-reviews-entity.js +0 -84
  20. package/tests/fixtures/expected-entities-objection-js/entities-config.js +0 -17
  21. package/tests/fixtures/expected-entities-objection-js/entities-translations.js +0 -13
  22. package/tests/fixtures/expected-entities-prisma/entities/test-reviews-entity.js +0 -84
  23. package/tests/fixtures/expected-entities-prisma/entities-config.js +0 -17
  24. package/tests/fixtures/expected-entities-prisma/entities-translations.js +0 -13
package/CLAUDE.md CHANGED
@@ -191,7 +191,14 @@ npx reldens-storage-prisma --host=<host> --database=<db> --user=<user> --passwor
191
191
 
192
192
  **EntitiesTranslationsGeneration** (`lib/generators/entities-translations-generation.js`):
193
193
  - Generates `entities-translations.js` file
194
- - Creates i18n translation keys for entities
194
+ - Creates i18n translation keys for entities and fields
195
+ - Generates two types of translations:
196
+ - Table labels: Human-readable entity names
197
+ - Entity-specific field translations: Field labels per entity
198
+ - Methods:
199
+ - `getTranslationLabels()`: Generates table name translations
200
+ - `getFieldTranslations()`: Generates entity-specific field translations
201
+ - `formatFieldName()`: Converts field names to human-readable labels (e.g., `owner_id` → `Owner ID`)
195
202
 
196
203
  **BaseGenerator** (`lib/generators/base-generator.js`):
197
204
  - Base class for all generators
@@ -255,7 +262,9 @@ All generated files are created in the **generated-entities/** directory:
255
262
 
256
263
  **Configuration Files:**
257
264
  - entities-config.js (entity relation configuration)
258
- - entities-translations.js (translation keys)
265
+ - entities-translations.js (translation keys with two sections):
266
+ - `labels`: Table name translations (e.g., `'skills_class_path': 'Class Paths'`)
267
+ - `fields`: Entity-specific field translations (e.g., `'skills_class_path': {'id': 'ID', 'key': 'Key'}`)
259
268
 
260
269
  ## Relation Keys Pattern
261
270
 
@@ -7,5 +7,8 @@
7
7
  module.exports.entitiesTranslations = {
8
8
  labels: {
9
9
  {{labels}}
10
+ },
11
+ fields: {
12
+ {{fields}}
10
13
  }
11
14
  };
@@ -75,15 +75,26 @@ class EntitiesGeneration extends BaseGenerator
75
75
  return false;
76
76
  }
77
77
  Logger.info('Generated entity file: '+fileName);
78
+ let properties = this.buildPropertiesObject(tableData.columns);
78
79
  this.generatedEntities[tableName] = {
79
80
  entityClassName,
80
81
  entityFileName: fileName,
81
82
  tableName,
82
- titleProperty
83
+ titleProperty,
84
+ properties
83
85
  };
84
86
  return true;
85
87
  }
86
88
 
89
+ buildPropertiesObject(columns)
90
+ {
91
+ let properties = {};
92
+ for(let columnName of Object.keys(columns)){
93
+ properties[columnName] = true;
94
+ }
95
+ return properties;
96
+ }
97
+
87
98
  detectPrimaryKeyColumn(columns)
88
99
  {
89
100
  for(let columnName of Object.keys(columns)){
@@ -37,10 +37,10 @@ class EntitiesTranslationsGeneration extends BaseGenerator
37
37
  Logger.critical('Failed to read entities translations template file: '+this.templatePath);
38
38
  return false;
39
39
  }
40
- let translationsContent = translationsTemplateContent.replace(
41
- /{{labels}}/g,
42
- this.getTranslationLabels(Object.assign({}, existingEntities, generatedEntities))
43
- );
40
+ let allEntities = Object.assign({}, existingEntities, generatedEntities);
41
+ let translationsContent = translationsTemplateContent
42
+ .replace(/{{labels}}/g, this.getTranslationLabels(allEntities))
43
+ .replace(/{{fields}}/g, this.getFieldTranslations(allEntities));
44
44
  if(!FileHandler.writeFile(this.entitiesTranslationsPath, translationsContent)){
45
45
  Logger.critical('Failed to write entities translations file: '+this.entitiesTranslationsPath);
46
46
  return false;
@@ -130,6 +130,42 @@ class EntitiesTranslationsGeneration extends BaseGenerator
130
130
  return labels.join(',\n ');
131
131
  }
132
132
 
133
+ getFieldTranslations(allEntities)
134
+ {
135
+ let fieldsTranslations = [];
136
+ for(let tableName of Object.keys(allEntities)){
137
+ let entity = allEntities[tableName];
138
+ if(!sc.hasOwn(entity, 'properties')){
139
+ continue;
140
+ }
141
+ let entityFields = [];
142
+ for(let fieldName of Object.keys(entity.properties)){
143
+ let formattedName = this.formatFieldName(fieldName);
144
+ entityFields.push('\''+fieldName+'\': \''+formattedName+'\'');
145
+ }
146
+ if(0 === entityFields.length){
147
+ continue;
148
+ }
149
+ fieldsTranslations.push(
150
+ '\''+tableName+'\': {\n '+entityFields.join(',\n ')+'\n }'
151
+ );
152
+ }
153
+ return fieldsTranslations.join(',\n ');
154
+ }
155
+
156
+ formatFieldName(fieldName)
157
+ {
158
+ let formatted = fieldName
159
+ .split('_')
160
+ .map(word => word.charAt(0).toUpperCase()+word.slice(1))
161
+ .join(' ');
162
+ formatted = formatted.replace(/\sId(\s|$)/g, ' ID$1');
163
+ formatted = formatted.replace(/\sAt(\s|$)/g, ' At$1');
164
+ formatted = formatted.replace(/\sKey(\s|$)/g, ' Key$1');
165
+ formatted = formatted.replace(/^Id(\s|$)/g, 'ID$1');
166
+ return formatted;
167
+ }
168
+
133
169
  }
134
170
 
135
171
  module.exports.EntitiesTranslationsGeneration = EntitiesTranslationsGeneration;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@reldens/storage",
3
3
  "scope": "@reldens",
4
- "version": "0.89.0",
4
+ "version": "0.90.0",
5
5
  "description": "Reldens - Storage",
6
6
  "author": "Damian A. Pastorini",
7
7
  "license": "MIT",
@@ -1,70 +1,70 @@
1
- /**
2
- *
3
- * Reldens - TestCategoriesEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestCategoriesEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'name';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- [titleProperty]: {
24
- isRequired: true,
25
- dbType: 'varchar'
26
- },
27
- slug: {
28
- isRequired: true,
29
- dbType: 'varchar'
30
- },
31
- description: {
32
- type: 'textarea',
33
- dbType: 'text'
34
- },
35
- is_active: {
36
- type: 'boolean',
37
- dbType: 'tinyint'
38
- },
39
- display_order: {
40
- type: 'number',
41
- dbType: 'int'
42
- },
43
- created_at: {
44
- type: 'datetime',
45
- dbType: 'timestamp'
46
- },
47
- updated_at: {
48
- type: 'datetime',
49
- dbType: 'timestamp'
50
- }
51
- };
52
- let propertiesKeys = Object.keys(properties);
53
- let showProperties = propertiesKeys;
54
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
55
- let listProperties = [...propertiesKeys];
56
- listProperties.splice(listProperties.indexOf('description'), 1);
57
- return {
58
- showProperties,
59
- editProperties,
60
- listProperties,
61
- filterProperties: listProperties,
62
- properties,
63
- titleProperty,
64
- ...extraProps
65
- };
66
- }
67
-
68
- }
69
-
70
- module.exports.TestCategoriesEntity = TestCategoriesEntity;
1
+ /**
2
+ *
3
+ * Reldens - TestCategoriesEntity
4
+ *
5
+ */
6
+
7
+ const { EntityProperties } = require('../../index');
8
+ const { sc } = require('@reldens/utils');
9
+
10
+ class TestCategoriesEntity extends EntityProperties
11
+ {
12
+
13
+ static propertiesConfig(extraProps)
14
+ {
15
+ let titleProperty = 'name';
16
+ let properties = {
17
+ id: {
18
+ isId: true,
19
+ type: 'number',
20
+ isRequired: true,
21
+ dbType: 'int'
22
+ },
23
+ [titleProperty]: {
24
+ isRequired: true,
25
+ dbType: 'varchar'
26
+ },
27
+ slug: {
28
+ isRequired: true,
29
+ dbType: 'varchar'
30
+ },
31
+ description: {
32
+ type: 'textarea',
33
+ dbType: 'text'
34
+ },
35
+ is_active: {
36
+ type: 'boolean',
37
+ dbType: 'tinyint'
38
+ },
39
+ display_order: {
40
+ type: 'number',
41
+ dbType: 'int'
42
+ },
43
+ created_at: {
44
+ type: 'datetime',
45
+ dbType: 'timestamp'
46
+ },
47
+ updated_at: {
48
+ type: 'datetime',
49
+ dbType: 'timestamp'
50
+ }
51
+ };
52
+ let propertiesKeys = Object.keys(properties);
53
+ let showProperties = propertiesKeys;
54
+ let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
55
+ let listProperties = [...propertiesKeys];
56
+ listProperties.splice(listProperties.indexOf('description'), 1);
57
+ return {
58
+ showProperties,
59
+ editProperties,
60
+ listProperties,
61
+ filterProperties: listProperties,
62
+ properties,
63
+ titleProperty,
64
+ ...extraProps
65
+ };
66
+ }
67
+
68
+ }
69
+
70
+ module.exports.TestCategoriesEntity = TestCategoriesEntity;
@@ -1,95 +1,95 @@
1
- /**
2
- *
3
- * Reldens - TestProductsEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestProductsEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'name';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- category_id: {
24
- type: 'reference',
25
- reference: 'test_categories',
26
- isRequired: true,
27
- dbType: 'int'
28
- },
29
- [titleProperty]: {
30
- isRequired: true,
31
- dbType: 'varchar'
32
- },
33
- sku: {
34
- isRequired: true,
35
- dbType: 'varchar'
36
- },
37
- description: {
38
- type: 'textarea',
39
- dbType: 'text'
40
- },
41
- price: {
42
- type: 'number',
43
- isRequired: true,
44
- dbType: 'decimal'
45
- },
46
- stock_quantity: {
47
- type: 'number',
48
- dbType: 'int'
49
- },
50
- is_featured: {
51
- type: 'boolean',
52
- dbType: 'tinyint'
53
- },
54
- metadata: {
55
- type: 'textarea',
56
- dbType: 'json'
57
- },
58
- tags: {
59
- dbType: 'varchar'
60
- },
61
- status: {
62
- availableValues: [
63
- {value: 1, label: 'draft'},
64
- {value: 2, label: 'published'},
65
- {value: 3, label: 'archived'}
66
- ],
67
- dbType: 'enum'
68
- },
69
- created_at: {
70
- type: 'datetime',
71
- dbType: 'timestamp'
72
- },
73
- updated_at: {
74
- type: 'datetime',
75
- dbType: 'timestamp'
76
- }
77
- };
78
- let propertiesKeys = Object.keys(properties);
79
- let showProperties = propertiesKeys;
80
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
81
- let listProperties = sc.removeFromArray([...propertiesKeys], ['description', 'metadata']);
82
- return {
83
- showProperties,
84
- editProperties,
85
- listProperties,
86
- filterProperties: listProperties,
87
- properties,
88
- titleProperty,
89
- ...extraProps
90
- };
91
- }
92
-
93
- }
94
-
95
- module.exports.TestProductsEntity = TestProductsEntity;
1
+ /**
2
+ *
3
+ * Reldens - TestProductsEntity
4
+ *
5
+ */
6
+
7
+ const { EntityProperties } = require('../../index');
8
+ const { sc } = require('@reldens/utils');
9
+
10
+ class TestProductsEntity extends EntityProperties
11
+ {
12
+
13
+ static propertiesConfig(extraProps)
14
+ {
15
+ let titleProperty = 'name';
16
+ let properties = {
17
+ id: {
18
+ isId: true,
19
+ type: 'number',
20
+ isRequired: true,
21
+ dbType: 'int'
22
+ },
23
+ category_id: {
24
+ type: 'reference',
25
+ reference: 'test_categories',
26
+ isRequired: true,
27
+ dbType: 'int'
28
+ },
29
+ [titleProperty]: {
30
+ isRequired: true,
31
+ dbType: 'varchar'
32
+ },
33
+ sku: {
34
+ isRequired: true,
35
+ dbType: 'varchar'
36
+ },
37
+ description: {
38
+ type: 'textarea',
39
+ dbType: 'text'
40
+ },
41
+ price: {
42
+ type: 'number',
43
+ isRequired: true,
44
+ dbType: 'decimal'
45
+ },
46
+ stock_quantity: {
47
+ type: 'number',
48
+ dbType: 'int'
49
+ },
50
+ is_featured: {
51
+ type: 'boolean',
52
+ dbType: 'tinyint'
53
+ },
54
+ metadata: {
55
+ type: 'textarea',
56
+ dbType: 'json'
57
+ },
58
+ tags: {
59
+ dbType: 'varchar'
60
+ },
61
+ status: {
62
+ availableValues: [
63
+ {value: 1, label: 'draft'},
64
+ {value: 2, label: 'published'},
65
+ {value: 3, label: 'archived'}
66
+ ],
67
+ dbType: 'enum'
68
+ },
69
+ created_at: {
70
+ type: 'datetime',
71
+ dbType: 'timestamp'
72
+ },
73
+ updated_at: {
74
+ type: 'datetime',
75
+ dbType: 'timestamp'
76
+ }
77
+ };
78
+ let propertiesKeys = Object.keys(properties);
79
+ let showProperties = propertiesKeys;
80
+ let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
81
+ let listProperties = sc.removeFromArray([...propertiesKeys], ['description', 'metadata']);
82
+ return {
83
+ showProperties,
84
+ editProperties,
85
+ listProperties,
86
+ filterProperties: listProperties,
87
+ properties,
88
+ titleProperty,
89
+ ...extraProps
90
+ };
91
+ }
92
+
93
+ }
94
+
95
+ module.exports.TestProductsEntity = TestProductsEntity;
@@ -1,84 +1,84 @@
1
- /**
2
- *
3
- * Reldens - TestReviewsEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestReviewsEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'title';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- product_id: {
24
- type: 'reference',
25
- reference: 'test_products',
26
- isRequired: true,
27
- dbType: 'int'
28
- },
29
- reviewer_name: {
30
- isRequired: true,
31
- dbType: 'varchar'
32
- },
33
- reviewer_email: {
34
- isRequired: true,
35
- dbType: 'varchar'
36
- },
37
- rating: {
38
- type: 'boolean',
39
- isRequired: true,
40
- dbType: 'tinyint'
41
- },
42
- [titleProperty]: {
43
- dbType: 'varchar'
44
- },
45
- comment: {
46
- type: 'textarea',
47
- dbType: 'text'
48
- },
49
- is_verified: {
50
- type: 'boolean',
51
- dbType: 'tinyint'
52
- },
53
- helpful_count: {
54
- type: 'number',
55
- dbType: 'int'
56
- },
57
- created_at: {
58
- type: 'datetime',
59
- dbType: 'timestamp'
60
- },
61
- updated_at: {
62
- type: 'datetime',
63
- dbType: 'timestamp'
64
- }
65
- };
66
- let propertiesKeys = Object.keys(properties);
67
- let showProperties = propertiesKeys;
68
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
69
- let listProperties = [...propertiesKeys];
70
- listProperties.splice(listProperties.indexOf('comment'), 1);
71
- return {
72
- showProperties,
73
- editProperties,
74
- listProperties,
75
- filterProperties: listProperties,
76
- properties,
77
- titleProperty,
78
- ...extraProps
79
- };
80
- }
81
-
82
- }
83
-
84
- module.exports.TestReviewsEntity = TestReviewsEntity;
1
+ /**
2
+ *
3
+ * Reldens - TestReviewsEntity
4
+ *
5
+ */
6
+
7
+ const { EntityProperties } = require('../../index');
8
+ const { sc } = require('@reldens/utils');
9
+
10
+ class TestReviewsEntity extends EntityProperties
11
+ {
12
+
13
+ static propertiesConfig(extraProps)
14
+ {
15
+ let titleProperty = 'title';
16
+ let properties = {
17
+ id: {
18
+ isId: true,
19
+ type: 'number',
20
+ isRequired: true,
21
+ dbType: 'int'
22
+ },
23
+ product_id: {
24
+ type: 'reference',
25
+ reference: 'test_products',
26
+ isRequired: true,
27
+ dbType: 'int'
28
+ },
29
+ reviewer_name: {
30
+ isRequired: true,
31
+ dbType: 'varchar'
32
+ },
33
+ reviewer_email: {
34
+ isRequired: true,
35
+ dbType: 'varchar'
36
+ },
37
+ rating: {
38
+ type: 'boolean',
39
+ isRequired: true,
40
+ dbType: 'tinyint'
41
+ },
42
+ [titleProperty]: {
43
+ dbType: 'varchar'
44
+ },
45
+ comment: {
46
+ type: 'textarea',
47
+ dbType: 'text'
48
+ },
49
+ is_verified: {
50
+ type: 'boolean',
51
+ dbType: 'tinyint'
52
+ },
53
+ helpful_count: {
54
+ type: 'number',
55
+ dbType: 'int'
56
+ },
57
+ created_at: {
58
+ type: 'datetime',
59
+ dbType: 'timestamp'
60
+ },
61
+ updated_at: {
62
+ type: 'datetime',
63
+ dbType: 'timestamp'
64
+ }
65
+ };
66
+ let propertiesKeys = Object.keys(properties);
67
+ let showProperties = propertiesKeys;
68
+ let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
69
+ let listProperties = [...propertiesKeys];
70
+ listProperties.splice(listProperties.indexOf('comment'), 1);
71
+ return {
72
+ showProperties,
73
+ editProperties,
74
+ listProperties,
75
+ filterProperties: listProperties,
76
+ properties,
77
+ titleProperty,
78
+ ...extraProps
79
+ };
80
+ }
81
+
82
+ }
83
+
84
+ module.exports.TestReviewsEntity = TestReviewsEntity;
@@ -4,13 +4,13 @@
4
4
  *
5
5
  */
6
6
 
7
- const { TestCategoriesEntity } = require('./entities/test-categories-entity');
8
- const { TestProductsEntity } = require('./entities/test-products-entity');
7
+ const { TestCategoriesEntity } = require('./entities/test-categories-entity');
8
+ const { TestProductsEntity } = require('./entities/test-products-entity');
9
9
  const { TestReviewsEntity } = require('./entities/test-reviews-entity');
10
10
 
11
11
  let entitiesConfig = {
12
- testCategories: TestCategoriesEntity.propertiesConfig(),
13
- testProducts: TestProductsEntity.propertiesConfig(),
12
+ testCategories: TestCategoriesEntity.propertiesConfig(),
13
+ testProducts: TestProductsEntity.propertiesConfig(),
14
14
  testReviews: TestReviewsEntity.propertiesConfig()
15
15
  };
16
16
 
@@ -0,0 +1,53 @@
1
+ /**
2
+ *
3
+ * Reldens - Entities Translations
4
+ *
5
+ */
6
+
7
+ module.exports.entitiesTranslations = {
8
+ labels: {
9
+ 'test_categories': 'Test Categories',
10
+ 'test_products': 'Test Products',
11
+ 'test_reviews': 'Test Reviews'
12
+ },
13
+ fields: {
14
+ 'test_categories': {
15
+ 'id': 'ID',
16
+ 'name': 'Name',
17
+ 'slug': 'Slug',
18
+ 'description': 'Description',
19
+ 'is_active': 'Is Active',
20
+ 'display_order': 'Display Order',
21
+ 'created_at': 'Created At',
22
+ 'updated_at': 'Updated At'
23
+ },
24
+ 'test_products': {
25
+ 'id': 'ID',
26
+ 'category_id': 'Category ID',
27
+ 'name': 'Name',
28
+ 'sku': 'Sku',
29
+ 'description': 'Description',
30
+ 'price': 'Price',
31
+ 'stock_quantity': 'Stock Quantity',
32
+ 'is_featured': 'Is Featured',
33
+ 'metadata': 'Metadata',
34
+ 'tags': 'Tags',
35
+ 'status': 'Status',
36
+ 'created_at': 'Created At',
37
+ 'updated_at': 'Updated At'
38
+ },
39
+ 'test_reviews': {
40
+ 'id': 'ID',
41
+ 'product_id': 'Product ID',
42
+ 'reviewer_name': 'Reviewer Name',
43
+ 'reviewer_email': 'Reviewer Email',
44
+ 'rating': 'Rating',
45
+ 'title': 'Title',
46
+ 'comment': 'Comment',
47
+ 'is_verified': 'Is Verified',
48
+ 'helpful_count': 'Helpful Count',
49
+ 'created_at': 'Created At',
50
+ 'updated_at': 'Updated At'
51
+ }
52
+ }
53
+ };
@@ -45,11 +45,11 @@ class RunTests
45
45
  }
46
46
  if(arg.startsWith('--suite=')){
47
47
  this.suite = arg.split('=')[1];
48
- Logger.info('Suite: '+this.suite+'\n');
48
+ Logger.info('Suite: '+this.suite);
49
49
  }
50
50
  if(arg.startsWith('--driver=')){
51
51
  this.driver = arg.split('=')[1];
52
- Logger.info('Driver: '+this.driver+'\n');
52
+ Logger.info('Driver: '+this.driver);
53
53
  }
54
54
  if('--skip-cleanup' === arg){
55
55
  this.skipCleanup = true;
@@ -584,7 +584,7 @@ class TestHelpers
584
584
  __dirname,
585
585
  '..',
586
586
  'fixtures',
587
- 'expected-entities-'+driverName,
587
+ relativePath.startsWith('models/') ? 'expected-entities-'+driverName : 'expected-entities',
588
588
  relativePath
589
589
  );
590
590
  let generatedPath = FileHandler.joinPaths(
@@ -22,7 +22,7 @@ class TestRunner
22
22
  suite(name)
23
23
  {
24
24
  this.currentSuite = name;
25
- Logger.info('\n▶ '+name);
25
+ Logger.info('▶ '+name);
26
26
  }
27
27
 
28
28
  group(name)
@@ -1,70 +0,0 @@
1
- /**
2
- *
3
- * Reldens - TestCategoriesEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestCategoriesEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'name';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- [titleProperty]: {
24
- isRequired: true,
25
- dbType: 'varchar'
26
- },
27
- slug: {
28
- isRequired: true,
29
- dbType: 'varchar'
30
- },
31
- description: {
32
- type: 'textarea',
33
- dbType: 'text'
34
- },
35
- is_active: {
36
- type: 'boolean',
37
- dbType: 'tinyint'
38
- },
39
- display_order: {
40
- type: 'number',
41
- dbType: 'int'
42
- },
43
- created_at: {
44
- type: 'datetime',
45
- dbType: 'timestamp'
46
- },
47
- updated_at: {
48
- type: 'datetime',
49
- dbType: 'timestamp'
50
- }
51
- };
52
- let propertiesKeys = Object.keys(properties);
53
- let showProperties = propertiesKeys;
54
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
55
- let listProperties = [...propertiesKeys];
56
- listProperties.splice(listProperties.indexOf('description'), 1);
57
- return {
58
- showProperties,
59
- editProperties,
60
- listProperties,
61
- filterProperties: listProperties,
62
- properties,
63
- titleProperty,
64
- ...extraProps
65
- };
66
- }
67
-
68
- }
69
-
70
- module.exports.TestCategoriesEntity = TestCategoriesEntity;
@@ -1,95 +0,0 @@
1
- /**
2
- *
3
- * Reldens - TestProductsEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestProductsEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'name';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- category_id: {
24
- type: 'reference',
25
- reference: 'test_categories',
26
- isRequired: true,
27
- dbType: 'int'
28
- },
29
- [titleProperty]: {
30
- isRequired: true,
31
- dbType: 'varchar'
32
- },
33
- sku: {
34
- isRequired: true,
35
- dbType: 'varchar'
36
- },
37
- description: {
38
- type: 'textarea',
39
- dbType: 'text'
40
- },
41
- price: {
42
- type: 'number',
43
- isRequired: true,
44
- dbType: 'decimal'
45
- },
46
- stock_quantity: {
47
- type: 'number',
48
- dbType: 'int'
49
- },
50
- is_featured: {
51
- type: 'boolean',
52
- dbType: 'tinyint'
53
- },
54
- metadata: {
55
- type: 'textarea',
56
- dbType: 'json'
57
- },
58
- tags: {
59
- dbType: 'varchar'
60
- },
61
- status: {
62
- availableValues: [
63
- {value: 1, label: 'draft'},
64
- {value: 2, label: 'published'},
65
- {value: 3, label: 'archived'}
66
- ],
67
- dbType: 'enum'
68
- },
69
- created_at: {
70
- type: 'datetime',
71
- dbType: 'timestamp'
72
- },
73
- updated_at: {
74
- type: 'datetime',
75
- dbType: 'timestamp'
76
- }
77
- };
78
- let propertiesKeys = Object.keys(properties);
79
- let showProperties = propertiesKeys;
80
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
81
- let listProperties = sc.removeFromArray([...propertiesKeys], ['description', 'metadata']);
82
- return {
83
- showProperties,
84
- editProperties,
85
- listProperties,
86
- filterProperties: listProperties,
87
- properties,
88
- titleProperty,
89
- ...extraProps
90
- };
91
- }
92
-
93
- }
94
-
95
- module.exports.TestProductsEntity = TestProductsEntity;
@@ -1,13 +0,0 @@
1
- /**
2
- *
3
- * Reldens - Entities Translations
4
- *
5
- */
6
-
7
- module.exports.entitiesTranslations = {
8
- labels: {
9
- 'test_categories': 'Test Categories',
10
- 'test_products': 'Test Products',
11
- 'test_reviews': 'Test Reviews'
12
- }
13
- };
@@ -1,70 +0,0 @@
1
- /**
2
- *
3
- * Reldens - TestCategoriesEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestCategoriesEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'name';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- [titleProperty]: {
24
- isRequired: true,
25
- dbType: 'varchar'
26
- },
27
- slug: {
28
- isRequired: true,
29
- dbType: 'varchar'
30
- },
31
- description: {
32
- type: 'textarea',
33
- dbType: 'text'
34
- },
35
- is_active: {
36
- type: 'boolean',
37
- dbType: 'tinyint'
38
- },
39
- display_order: {
40
- type: 'number',
41
- dbType: 'int'
42
- },
43
- created_at: {
44
- type: 'datetime',
45
- dbType: 'timestamp'
46
- },
47
- updated_at: {
48
- type: 'datetime',
49
- dbType: 'timestamp'
50
- }
51
- };
52
- let propertiesKeys = Object.keys(properties);
53
- let showProperties = propertiesKeys;
54
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
55
- let listProperties = [...propertiesKeys];
56
- listProperties.splice(listProperties.indexOf('description'), 1);
57
- return {
58
- showProperties,
59
- editProperties,
60
- listProperties,
61
- filterProperties: listProperties,
62
- properties,
63
- titleProperty,
64
- ...extraProps
65
- };
66
- }
67
-
68
- }
69
-
70
- module.exports.TestCategoriesEntity = TestCategoriesEntity;
@@ -1,95 +0,0 @@
1
- /**
2
- *
3
- * Reldens - TestProductsEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestProductsEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'name';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- category_id: {
24
- type: 'reference',
25
- reference: 'test_categories',
26
- isRequired: true,
27
- dbType: 'int'
28
- },
29
- [titleProperty]: {
30
- isRequired: true,
31
- dbType: 'varchar'
32
- },
33
- sku: {
34
- isRequired: true,
35
- dbType: 'varchar'
36
- },
37
- description: {
38
- type: 'textarea',
39
- dbType: 'text'
40
- },
41
- price: {
42
- type: 'number',
43
- isRequired: true,
44
- dbType: 'decimal'
45
- },
46
- stock_quantity: {
47
- type: 'number',
48
- dbType: 'int'
49
- },
50
- is_featured: {
51
- type: 'boolean',
52
- dbType: 'tinyint'
53
- },
54
- metadata: {
55
- type: 'textarea',
56
- dbType: 'json'
57
- },
58
- tags: {
59
- dbType: 'varchar'
60
- },
61
- status: {
62
- availableValues: [
63
- {value: 1, label: 'draft'},
64
- {value: 2, label: 'published'},
65
- {value: 3, label: 'archived'}
66
- ],
67
- dbType: 'enum'
68
- },
69
- created_at: {
70
- type: 'datetime',
71
- dbType: 'timestamp'
72
- },
73
- updated_at: {
74
- type: 'datetime',
75
- dbType: 'timestamp'
76
- }
77
- };
78
- let propertiesKeys = Object.keys(properties);
79
- let showProperties = propertiesKeys;
80
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
81
- let listProperties = sc.removeFromArray([...propertiesKeys], ['description', 'metadata']);
82
- return {
83
- showProperties,
84
- editProperties,
85
- listProperties,
86
- filterProperties: listProperties,
87
- properties,
88
- titleProperty,
89
- ...extraProps
90
- };
91
- }
92
-
93
- }
94
-
95
- module.exports.TestProductsEntity = TestProductsEntity;
@@ -1,84 +0,0 @@
1
- /**
2
- *
3
- * Reldens - TestReviewsEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestReviewsEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'title';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- product_id: {
24
- type: 'reference',
25
- reference: 'test_products',
26
- isRequired: true,
27
- dbType: 'int'
28
- },
29
- reviewer_name: {
30
- isRequired: true,
31
- dbType: 'varchar'
32
- },
33
- reviewer_email: {
34
- isRequired: true,
35
- dbType: 'varchar'
36
- },
37
- rating: {
38
- type: 'boolean',
39
- isRequired: true,
40
- dbType: 'tinyint'
41
- },
42
- [titleProperty]: {
43
- dbType: 'varchar'
44
- },
45
- comment: {
46
- type: 'textarea',
47
- dbType: 'text'
48
- },
49
- is_verified: {
50
- type: 'boolean',
51
- dbType: 'tinyint'
52
- },
53
- helpful_count: {
54
- type: 'number',
55
- dbType: 'int'
56
- },
57
- created_at: {
58
- type: 'datetime',
59
- dbType: 'timestamp'
60
- },
61
- updated_at: {
62
- type: 'datetime',
63
- dbType: 'timestamp'
64
- }
65
- };
66
- let propertiesKeys = Object.keys(properties);
67
- let showProperties = propertiesKeys;
68
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
69
- let listProperties = [...propertiesKeys];
70
- listProperties.splice(listProperties.indexOf('comment'), 1);
71
- return {
72
- showProperties,
73
- editProperties,
74
- listProperties,
75
- filterProperties: listProperties,
76
- properties,
77
- titleProperty,
78
- ...extraProps
79
- };
80
- }
81
-
82
- }
83
-
84
- module.exports.TestReviewsEntity = TestReviewsEntity;
@@ -1,17 +0,0 @@
1
- /**
2
- *
3
- * Reldens - Entities Config
4
- *
5
- */
6
-
7
- const { TestCategoriesEntity } = require('./entities/test-categories-entity');
8
- const { TestProductsEntity } = require('./entities/test-products-entity');
9
- const { TestReviewsEntity } = require('./entities/test-reviews-entity');
10
-
11
- let entitiesConfig = {
12
- testCategories: TestCategoriesEntity.propertiesConfig(),
13
- testProducts: TestProductsEntity.propertiesConfig(),
14
- testReviews: TestReviewsEntity.propertiesConfig()
15
- };
16
-
17
- module.exports.entitiesConfig = entitiesConfig;
@@ -1,13 +0,0 @@
1
- /**
2
- *
3
- * Reldens - Entities Translations
4
- *
5
- */
6
-
7
- module.exports.entitiesTranslations = {
8
- labels: {
9
- 'test_categories': 'Test Categories',
10
- 'test_products': 'Test Products',
11
- 'test_reviews': 'Test Reviews'
12
- }
13
- };
@@ -1,84 +0,0 @@
1
- /**
2
- *
3
- * Reldens - TestReviewsEntity
4
- *
5
- */
6
-
7
- const { EntityProperties } = require('../../index');
8
- const { sc } = require('@reldens/utils');
9
-
10
- class TestReviewsEntity extends EntityProperties
11
- {
12
-
13
- static propertiesConfig(extraProps)
14
- {
15
- let titleProperty = 'title';
16
- let properties = {
17
- id: {
18
- isId: true,
19
- type: 'number',
20
- isRequired: true,
21
- dbType: 'int'
22
- },
23
- product_id: {
24
- type: 'reference',
25
- reference: 'test_products',
26
- isRequired: true,
27
- dbType: 'int'
28
- },
29
- reviewer_name: {
30
- isRequired: true,
31
- dbType: 'varchar'
32
- },
33
- reviewer_email: {
34
- isRequired: true,
35
- dbType: 'varchar'
36
- },
37
- rating: {
38
- type: 'boolean',
39
- isRequired: true,
40
- dbType: 'tinyint'
41
- },
42
- [titleProperty]: {
43
- dbType: 'varchar'
44
- },
45
- comment: {
46
- type: 'textarea',
47
- dbType: 'text'
48
- },
49
- is_verified: {
50
- type: 'boolean',
51
- dbType: 'tinyint'
52
- },
53
- helpful_count: {
54
- type: 'number',
55
- dbType: 'int'
56
- },
57
- created_at: {
58
- type: 'datetime',
59
- dbType: 'timestamp'
60
- },
61
- updated_at: {
62
- type: 'datetime',
63
- dbType: 'timestamp'
64
- }
65
- };
66
- let propertiesKeys = Object.keys(properties);
67
- let showProperties = propertiesKeys;
68
- let editProperties = sc.removeFromArray([...propertiesKeys], ['id', 'created_at', 'updated_at']);
69
- let listProperties = [...propertiesKeys];
70
- listProperties.splice(listProperties.indexOf('comment'), 1);
71
- return {
72
- showProperties,
73
- editProperties,
74
- listProperties,
75
- filterProperties: listProperties,
76
- properties,
77
- titleProperty,
78
- ...extraProps
79
- };
80
- }
81
-
82
- }
83
-
84
- module.exports.TestReviewsEntity = TestReviewsEntity;
@@ -1,17 +0,0 @@
1
- /**
2
- *
3
- * Reldens - Entities Config
4
- *
5
- */
6
-
7
- const { TestCategoriesEntity } = require('./entities/test-categories-entity');
8
- const { TestProductsEntity } = require('./entities/test-products-entity');
9
- const { TestReviewsEntity } = require('./entities/test-reviews-entity');
10
-
11
- let entitiesConfig = {
12
- testCategories: TestCategoriesEntity.propertiesConfig(),
13
- testProducts: TestProductsEntity.propertiesConfig(),
14
- testReviews: TestReviewsEntity.propertiesConfig()
15
- };
16
-
17
- module.exports.entitiesConfig = entitiesConfig;
@@ -1,13 +0,0 @@
1
- /**
2
- *
3
- * Reldens - Entities Translations
4
- *
5
- */
6
-
7
- module.exports.entitiesTranslations = {
8
- labels: {
9
- 'test_categories': 'Test Categories',
10
- 'test_products': 'Test Products',
11
- 'test_reviews': 'Test Reviews'
12
- }
13
- };