@reldens/storage 0.88.0 → 0.89.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 (63) hide show
  1. package/.claude/driver-methods-complete-analysis.md +1978 -0
  2. package/.claude/test-architecture.md +973 -0
  3. package/CLAUDE.md +121 -1
  4. package/bin/reldens-storage.js +1 -1
  5. package/lib/base-driver.js +8 -0
  6. package/lib/entities-generator.js +1 -3
  7. package/lib/entity-templates/mikro-orm-model.template +2 -1
  8. package/lib/generators/models-generation.js +126 -5
  9. package/lib/mikro-orm/mikro-orm-data-server.js +24 -10
  10. package/lib/mikro-orm/mikro-orm-driver.js +184 -116
  11. package/lib/objection-js/objection-js-driver.js +111 -19
  12. package/lib/prisma/prisma-data-server.js +3 -2
  13. package/lib/prisma/prisma-driver.js +12 -10
  14. package/lib/prisma/prisma-filter-processor.js +193 -146
  15. package/lib/prisma/prisma-metadata-loader.js +0 -4
  16. package/lib/prisma/prisma-relation-resolver.js +292 -267
  17. package/lib/prisma/prisma-type-caster.js +280 -260
  18. package/package.json +15 -6
  19. package/tests/.env.test.example +7 -0
  20. package/tests/fixtures/categories-fixtures.js +164 -0
  21. package/tests/fixtures/expected-entities-mikro-orm/entities/test-categories-entity.js +70 -0
  22. package/tests/fixtures/expected-entities-mikro-orm/entities/test-products-entity.js +95 -0
  23. package/tests/fixtures/expected-entities-mikro-orm/entities/test-reviews-entity.js +84 -0
  24. package/tests/fixtures/expected-entities-mikro-orm/entities-config.js +17 -0
  25. package/tests/fixtures/expected-entities-mikro-orm/entities-translations.js +13 -0
  26. package/tests/fixtures/expected-entities-mikro-orm/models/mikro-orm/registered-models-mikro-orm.js +23 -0
  27. package/tests/fixtures/expected-entities-mikro-orm/models/mikro-orm/test-categories-model.js +57 -0
  28. package/tests/fixtures/expected-entities-mikro-orm/models/mikro-orm/test-products-model.js +79 -0
  29. package/tests/fixtures/expected-entities-mikro-orm/models/mikro-orm/test-reviews-model.js +70 -0
  30. package/tests/fixtures/expected-entities-objection-js/entities/test-categories-entity.js +70 -0
  31. package/tests/fixtures/expected-entities-objection-js/entities/test-products-entity.js +95 -0
  32. package/tests/fixtures/expected-entities-objection-js/entities/test-reviews-entity.js +84 -0
  33. package/tests/fixtures/expected-entities-objection-js/entities-config.js +17 -0
  34. package/tests/fixtures/expected-entities-objection-js/entities-translations.js +13 -0
  35. package/tests/fixtures/expected-entities-objection-js/models/objection-js/registered-models-objection-js.js +23 -0
  36. package/tests/fixtures/expected-entities-objection-js/models/objection-js/test-categories-model.js +33 -0
  37. package/tests/fixtures/expected-entities-objection-js/models/objection-js/test-products-model.js +42 -0
  38. package/tests/fixtures/expected-entities-objection-js/models/objection-js/test-reviews-model.js +33 -0
  39. package/tests/fixtures/expected-entities-prisma/entities/test-categories-entity.js +70 -0
  40. package/tests/fixtures/expected-entities-prisma/entities/test-products-entity.js +95 -0
  41. package/tests/fixtures/expected-entities-prisma/entities/test-reviews-entity.js +84 -0
  42. package/tests/fixtures/expected-entities-prisma/entities-config.js +17 -0
  43. package/tests/fixtures/expected-entities-prisma/entities-translations.js +13 -0
  44. package/tests/fixtures/expected-entities-prisma/models/prisma/registered-models-prisma.js +23 -0
  45. package/tests/fixtures/expected-entities-prisma/models/prisma/test-categories-model.js +43 -0
  46. package/tests/fixtures/expected-entities-prisma/models/prisma/test-products-model.js +50 -0
  47. package/tests/fixtures/expected-entities-prisma/models/prisma/test-reviews-model.js +46 -0
  48. package/tests/fixtures/products-fixtures.js +119 -0
  49. package/tests/fixtures/reviews-fixtures.js +42 -0
  50. package/tests/fixtures/sql/test-schema.sql +59 -0
  51. package/tests/integration/test-drivers.js +257 -0
  52. package/tests/integration/test-nested-filters.js +408 -0
  53. package/tests/integration/test-relations.js +349 -0
  54. package/tests/run-tests.js +213 -0
  55. package/tests/unit/test-drivers.js +89 -0
  56. package/tests/unit/test-entities-generator.js +533 -0
  57. package/tests/unit/test-entity-manager.js +128 -0
  58. package/tests/unit/test-type-mapper.js +232 -0
  59. package/tests/utils/custom-reporter.js +73 -0
  60. package/tests/utils/driver-registry.js +144 -0
  61. package/tests/utils/prisma-subprocess-worker.js +150 -0
  62. package/tests/utils/test-helpers.js +726 -0
  63. package/tests/utils/test-runner.js +63 -0
@@ -0,0 +1,63 @@
1
+ /**
2
+ *
3
+ * Reldens - Storage Test Runner Utility
4
+ *
5
+ */
6
+
7
+ const assert = require('node:assert');
8
+ const { Logger } = require('@reldens/utils');
9
+
10
+ class TestRunner
11
+ {
12
+
13
+ constructor()
14
+ {
15
+ this.testCount = 0;
16
+ this.passedCount = 0;
17
+ this.failedCount = 0;
18
+ this.currentSuite = '';
19
+ this.currentGroup = '';
20
+ }
21
+
22
+ suite(name)
23
+ {
24
+ this.currentSuite = name;
25
+ Logger.info('\n▶ '+name);
26
+ }
27
+
28
+ group(name)
29
+ {
30
+ this.currentGroup = name;
31
+ Logger.info(' ▶ '+name);
32
+ }
33
+
34
+ async test(name, testFn)
35
+ {
36
+ this.testCount++;
37
+ let startTime = Date.now();
38
+ try {
39
+ await testFn();
40
+ this.passedCount++;
41
+ let duration = Date.now() - startTime;
42
+ Logger.info(' ✔ '+name+' ('+duration+'ms)');
43
+ } catch(error) {
44
+ this.failedCount++;
45
+ let duration = Date.now() - startTime;
46
+ Logger.error(' ✖ '+name+' ('+duration+'ms)');
47
+ Logger.error(' Error: '+error.message);
48
+ }
49
+ }
50
+
51
+ getResults()
52
+ {
53
+ return {
54
+ total: this.testCount,
55
+ passed: this.passedCount,
56
+ failed: this.failedCount
57
+ };
58
+ }
59
+
60
+ }
61
+
62
+ module.exports.TestRunner = TestRunner;
63
+ module.exports.assert = assert;