@antelopejs/interface-database-decorators 0.1.10 → 0.1.11

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 (55) hide show
  1. package/dist/common.js.map +1 -1
  2. package/dist/database.js.map +1 -1
  3. package/dist/model.js +29 -26
  4. package/dist/model.js.map +1 -1
  5. package/dist/modifiers/common.d.ts +24 -4
  6. package/dist/modifiers/common.js +92 -114
  7. package/dist/modifiers/common.js.map +1 -1
  8. package/dist/modifiers/encryption.js +14 -9
  9. package/dist/modifiers/encryption.js.map +1 -1
  10. package/dist/modifiers/internal/kinds.d.ts +12 -0
  11. package/dist/modifiers/internal/kinds.js +29 -0
  12. package/dist/modifiers/internal/kinds.js.map +1 -0
  13. package/dist/modifiers/internal/records.d.ts +29 -0
  14. package/dist/modifiers/internal/records.js +42 -0
  15. package/dist/modifiers/internal/records.js.map +1 -0
  16. package/dist/modifiers/localization.js +5 -1
  17. package/dist/modifiers/localization.js.map +1 -1
  18. package/dist/schema.js +1 -2
  19. package/dist/schema.js.map +1 -1
  20. package/dist/table.js +19 -5
  21. package/dist/table.js.map +1 -1
  22. package/dist/tests/codec_helpers.d.ts +6 -2
  23. package/dist/tests/codec_helpers.js +18 -14
  24. package/dist/tests/codec_helpers.js.map +1 -1
  25. package/dist/tests/common.test.js +38 -46
  26. package/dist/tests/common.test.js.map +1 -1
  27. package/dist/tests/cross_instance.test.js +27 -2
  28. package/dist/tests/cross_instance.test.js.map +1 -1
  29. package/dist/tests/database.test.js +246 -256
  30. package/dist/tests/database.test.js.map +1 -1
  31. package/dist/tests/helpers/other-instance.d.ts +1 -1
  32. package/dist/tests/helpers/other-instance.js +41 -9
  33. package/dist/tests/helpers/other-instance.js.map +1 -1
  34. package/dist/tests/integration.test.js +485 -485
  35. package/dist/tests/integration.test.js.map +1 -1
  36. package/dist/tests/model.test.js +293 -308
  37. package/dist/tests/model.test.js.map +1 -1
  38. package/dist/tests/modifiers/autodate.test.js +80 -86
  39. package/dist/tests/modifiers/autodate.test.js.map +1 -1
  40. package/dist/tests/modifiers/common.test.js +181 -195
  41. package/dist/tests/modifiers/common.test.js.map +1 -1
  42. package/dist/tests/modifiers/encryption.test.js +149 -155
  43. package/dist/tests/modifiers/encryption.test.js.map +1 -1
  44. package/dist/tests/modifiers/hash.test.js +91 -99
  45. package/dist/tests/modifiers/hash.test.js.map +1 -1
  46. package/dist/tests/modifiers/localization.test.js +186 -196
  47. package/dist/tests/modifiers/localization.test.js.map +1 -1
  48. package/dist/tests/relation.test.js +92 -97
  49. package/dist/tests/relation.test.js.map +1 -1
  50. package/dist/tests/schema.test.js +101 -106
  51. package/dist/tests/schema.test.js.map +1 -1
  52. package/dist/tests/table.test.js +124 -132
  53. package/dist/tests/table.test.js.map +1 -1
  54. package/package.json +14 -3
  55. package/skills/database-decorators-interface/cases.json +71 -0
@@ -1 +1 @@
1
- {"version":3,"file":"common.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/common.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/common.test.ts"],"names":[],"mappings":"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"}
@@ -10,161 +10,155 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const chai_1 = require("chai");
13
- const table_1 = require("@antelopejs/interface-database-decorators/table");
14
- const encryption_1 = require("@antelopejs/interface-database-decorators/modifiers/encryption");
13
+ const table_1 = require("../../table");
14
+ const encryption_1 = require("../../modifiers/encryption");
15
15
  describe("Modifiers - encryption", () => {
16
- it("creates encryption modifier", async () => CreateEncryptionModifierTest());
17
- it("encrypts and decrypts string values", async () => EncryptAndDecryptStringValuesTest());
18
- it("encrypts and decrypts object values", async () => EncryptAndDecryptObjectValuesTest());
19
- it("encrypts and decrypts array values", async () => EncryptAndDecryptArrayValuesTest());
20
- it("uses custom iv size", async () => UseCustomIvSizeTest());
21
- it("handles encryption decorator", async () => HandleEncryptionDecoratorTest());
22
- it("generates unique iv for each encryption", async () => GenerateUniqueIvForEachEncryptionTest());
23
- it("preserves data integrity", async () => PreserveDataIntegrityTest());
16
+ it("creates encryption modifier", async () => {
17
+ const Mixed = table_1.Table.with(encryption_1.EncryptionModifier);
18
+ class Sample extends Mixed {
19
+ }
20
+ __decorate([
21
+ (0, encryption_1.Encrypted)({ secretKey: "12345678901234567890123456789012" }),
22
+ (0, table_1.Field)("string"),
23
+ __metadata("design:type", String)
24
+ ], Sample.prototype, "value", void 0);
25
+ const instance = new Sample();
26
+ instance.value = "hello";
27
+ (0, chai_1.expect)(instance.value).to.equal("hello");
28
+ });
29
+ it("encrypts and decrypts string values", async () => {
30
+ class User extends table_1.Table.with(encryption_1.EncryptionModifier) {
31
+ }
32
+ __decorate([
33
+ (0, encryption_1.Encrypted)({
34
+ secretKey: "12345678901234567890123456789012",
35
+ algorithm: "aes-256-cbc",
36
+ }),
37
+ (0, table_1.Field)("string"),
38
+ __metadata("design:type", String)
39
+ ], User.prototype, "email", void 0);
40
+ const user = new User();
41
+ user.email = "user@example.com";
42
+ (0, chai_1.expect)(user.email).to.equal("user@example.com");
43
+ });
44
+ it("encrypts and decrypts object values", async () => {
45
+ class Doc extends table_1.Table.with(encryption_1.EncryptionModifier) {
46
+ }
47
+ __decorate([
48
+ (0, encryption_1.Encrypted)({
49
+ secretKey: "12345678901234567890123456789012",
50
+ algorithm: "aes-256-cbc",
51
+ }),
52
+ (0, table_1.Field)("any"),
53
+ __metadata("design:type", Object)
54
+ ], Doc.prototype, "meta", void 0);
55
+ const doc = new Doc();
56
+ const original = { admin: true, count: 3 };
57
+ doc.meta = original;
58
+ (0, chai_1.expect)(doc.meta).to.deep.equal(original);
59
+ });
60
+ it("encrypts and decrypts array values", async () => {
61
+ class Tags extends table_1.Table.with(encryption_1.EncryptionModifier) {
62
+ }
63
+ __decorate([
64
+ (0, encryption_1.Encrypted)({
65
+ secretKey: "12345678901234567890123456789012",
66
+ algorithm: "aes-256-cbc",
67
+ }),
68
+ (0, table_1.Field)("any"),
69
+ __metadata("design:type", Array)
70
+ ], Tags.prototype, "values", void 0);
71
+ const tags = new Tags();
72
+ const original = ["a", "b", { deep: "x" }];
73
+ tags.values = original;
74
+ (0, chai_1.expect)(tags.values).to.deep.equal(original);
75
+ });
76
+ it("uses custom iv size", async () => {
77
+ class WithIv extends table_1.Table.with(encryption_1.EncryptionModifier) {
78
+ }
79
+ __decorate([
80
+ (0, encryption_1.Encrypted)({
81
+ secretKey: "12345678901234567890123456789012",
82
+ ivSize: 16,
83
+ algorithm: "aes-256-cbc",
84
+ }),
85
+ (0, table_1.Field)("string"),
86
+ __metadata("design:type", String)
87
+ ], WithIv.prototype, "data", void 0);
88
+ const test = new WithIv();
89
+ test.data = "iv test";
90
+ (0, chai_1.expect)(test.data).to.equal("iv test");
91
+ });
92
+ });
93
+ describe("Modifiers - encryption", () => {
94
+ it("handles encryption decorator", async () => {
95
+ class Secured extends table_1.Table.with(encryption_1.EncryptionModifier) {
96
+ }
97
+ __decorate([
98
+ (0, encryption_1.Encrypted)({
99
+ secretKey: "12345678901234567890123456789012",
100
+ algorithm: "aes-256-cbc",
101
+ }),
102
+ (0, table_1.Field)("string"),
103
+ __metadata("design:type", String)
104
+ ], Secured.prototype, "password", void 0);
105
+ __decorate([
106
+ (0, encryption_1.Encrypted)({
107
+ secretKey: "12345678901234567890123456789012",
108
+ algorithm: "aes-256-cbc",
109
+ }),
110
+ (0, table_1.Field)("any"),
111
+ __metadata("design:type", Object)
112
+ ], Secured.prototype, "extra", void 0);
113
+ const secured = new Secured();
114
+ secured.password = "admin123";
115
+ secured.extra = { token: "xyz" };
116
+ (0, chai_1.expect)(secured.password).to.equal("admin123");
117
+ (0, chai_1.expect)(secured.extra).to.deep.equal({ token: "xyz" });
118
+ });
119
+ it("generates unique iv for each encryption", async () => {
120
+ class Message extends table_1.Table.with(encryption_1.EncryptionModifier) {
121
+ }
122
+ __decorate([
123
+ (0, encryption_1.Encrypted)({
124
+ secretKey: "12345678901234567890123456789012",
125
+ algorithm: "aes-256-cbc",
126
+ }),
127
+ (0, table_1.Field)("string"),
128
+ __metadata("design:type", String)
129
+ ], Message.prototype, "body", void 0);
130
+ const m1 = new Message();
131
+ const m2 = new Message();
132
+ m1.body = "secret";
133
+ m2.body = "secret";
134
+ (0, chai_1.expect)(m1.body).to.equal("secret");
135
+ (0, chai_1.expect)(m2.body).to.equal("secret");
136
+ (0, chai_1.expect)(m1).to.not.deep.equal(m2);
137
+ });
138
+ it("preserves data integrity", async () => {
139
+ class Complex extends table_1.Table.with(encryption_1.EncryptionModifier) {
140
+ }
141
+ __decorate([
142
+ (0, encryption_1.Encrypted)({
143
+ secretKey: "12345678901234567890123456789012",
144
+ algorithm: "aes-256-cbc",
145
+ }),
146
+ (0, table_1.Field)("any"),
147
+ __metadata("design:type", Object)
148
+ ], Complex.prototype, "payload", void 0);
149
+ const original = {
150
+ string: "txt",
151
+ number: 123,
152
+ boolean: true,
153
+ null: null,
154
+ array: [1, 2],
155
+ object: { nested: "val" },
156
+ date: new Date("2022-12-01"),
157
+ };
158
+ const instance = new Complex();
159
+ instance.payload = original;
160
+ (0, chai_1.expect)(instance.payload).to.deep.equal(original);
161
+ (0, chai_1.expect)(instance.payload.date).to.be.instanceOf(Date);
162
+ });
24
163
  });
25
- async function CreateEncryptionModifierTest() {
26
- const Mixed = table_1.Table.with(encryption_1.EncryptionModifier);
27
- class Sample extends Mixed {
28
- }
29
- __decorate([
30
- (0, encryption_1.Encrypted)({ secretKey: "12345678901234567890123456789012" }),
31
- (0, table_1.Field)("string"),
32
- __metadata("design:type", String)
33
- ], Sample.prototype, "value", void 0);
34
- const instance = new Sample();
35
- instance.value = "hello";
36
- (0, chai_1.expect)(instance.value).to.equal("hello");
37
- }
38
- async function EncryptAndDecryptStringValuesTest() {
39
- class User extends table_1.Table.with(encryption_1.EncryptionModifier) {
40
- }
41
- __decorate([
42
- (0, encryption_1.Encrypted)({
43
- secretKey: "12345678901234567890123456789012",
44
- algorithm: "aes-256-cbc",
45
- }),
46
- (0, table_1.Field)("string"),
47
- __metadata("design:type", String)
48
- ], User.prototype, "email", void 0);
49
- const user = new User();
50
- user.email = "user@example.com";
51
- (0, chai_1.expect)(user.email).to.equal("user@example.com");
52
- }
53
- async function EncryptAndDecryptObjectValuesTest() {
54
- class Doc extends table_1.Table.with(encryption_1.EncryptionModifier) {
55
- }
56
- __decorate([
57
- (0, encryption_1.Encrypted)({
58
- secretKey: "12345678901234567890123456789012",
59
- algorithm: "aes-256-cbc",
60
- }),
61
- (0, table_1.Field)("any"),
62
- __metadata("design:type", Object)
63
- ], Doc.prototype, "meta", void 0);
64
- const doc = new Doc();
65
- const original = { admin: true, count: 3 };
66
- doc.meta = original;
67
- (0, chai_1.expect)(doc.meta).to.deep.equal(original);
68
- }
69
- async function EncryptAndDecryptArrayValuesTest() {
70
- class Tags extends table_1.Table.with(encryption_1.EncryptionModifier) {
71
- }
72
- __decorate([
73
- (0, encryption_1.Encrypted)({
74
- secretKey: "12345678901234567890123456789012",
75
- algorithm: "aes-256-cbc",
76
- }),
77
- (0, table_1.Field)("any"),
78
- __metadata("design:type", Array)
79
- ], Tags.prototype, "values", void 0);
80
- const tags = new Tags();
81
- const original = ["a", "b", { deep: "x" }];
82
- tags.values = original;
83
- (0, chai_1.expect)(tags.values).to.deep.equal(original);
84
- }
85
- async function UseCustomIvSizeTest() {
86
- class WithIv extends table_1.Table.with(encryption_1.EncryptionModifier) {
87
- }
88
- __decorate([
89
- (0, encryption_1.Encrypted)({
90
- secretKey: "12345678901234567890123456789012",
91
- ivSize: 16,
92
- algorithm: "aes-256-cbc",
93
- }),
94
- (0, table_1.Field)("string"),
95
- __metadata("design:type", String)
96
- ], WithIv.prototype, "data", void 0);
97
- const test = new WithIv();
98
- test.data = "iv test";
99
- (0, chai_1.expect)(test.data).to.equal("iv test");
100
- }
101
- async function HandleEncryptionDecoratorTest() {
102
- class Secured extends table_1.Table.with(encryption_1.EncryptionModifier) {
103
- }
104
- __decorate([
105
- (0, encryption_1.Encrypted)({
106
- secretKey: "12345678901234567890123456789012",
107
- algorithm: "aes-256-cbc",
108
- }),
109
- (0, table_1.Field)("string"),
110
- __metadata("design:type", String)
111
- ], Secured.prototype, "password", void 0);
112
- __decorate([
113
- (0, encryption_1.Encrypted)({
114
- secretKey: "12345678901234567890123456789012",
115
- algorithm: "aes-256-cbc",
116
- }),
117
- (0, table_1.Field)("any"),
118
- __metadata("design:type", Object)
119
- ], Secured.prototype, "extra", void 0);
120
- const secured = new Secured();
121
- secured.password = "admin123";
122
- secured.extra = { token: "xyz" };
123
- (0, chai_1.expect)(secured.password).to.equal("admin123");
124
- (0, chai_1.expect)(secured.extra).to.deep.equal({ token: "xyz" });
125
- }
126
- async function GenerateUniqueIvForEachEncryptionTest() {
127
- class Message extends table_1.Table.with(encryption_1.EncryptionModifier) {
128
- }
129
- __decorate([
130
- (0, encryption_1.Encrypted)({
131
- secretKey: "12345678901234567890123456789012",
132
- algorithm: "aes-256-cbc",
133
- }),
134
- (0, table_1.Field)("string"),
135
- __metadata("design:type", String)
136
- ], Message.prototype, "body", void 0);
137
- const m1 = new Message();
138
- const m2 = new Message();
139
- m1.body = "secret";
140
- m2.body = "secret";
141
- (0, chai_1.expect)(m1.body).to.equal("secret");
142
- (0, chai_1.expect)(m2.body).to.equal("secret");
143
- (0, chai_1.expect)(m1).to.not.deep.equal(m2);
144
- }
145
- async function PreserveDataIntegrityTest() {
146
- class Complex extends table_1.Table.with(encryption_1.EncryptionModifier) {
147
- }
148
- __decorate([
149
- (0, encryption_1.Encrypted)({
150
- secretKey: "12345678901234567890123456789012",
151
- algorithm: "aes-256-cbc",
152
- }),
153
- (0, table_1.Field)("any"),
154
- __metadata("design:type", Object)
155
- ], Complex.prototype, "payload", void 0);
156
- const original = {
157
- string: "txt",
158
- number: 123,
159
- boolean: true,
160
- null: null,
161
- array: [1, 2],
162
- object: { nested: "val" },
163
- date: new Date("2022-12-01"),
164
- };
165
- const instance = new Complex();
166
- instance.payload = original;
167
- (0, chai_1.expect)(instance.payload).to.deep.equal(original);
168
- (0, chai_1.expect)(instance.payload.date).to.be.instanceOf(Date);
169
- }
170
164
  //# sourceMappingURL=encryption.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"encryption.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/encryption.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encryption.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/encryption.test.ts"],"names":[],"mappings":"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"}
@@ -10,17 +10,98 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const chai_1 = require("chai");
13
- const table_1 = require("@antelopejs/interface-database-decorators/table");
14
- const hash_1 = require("@antelopejs/interface-database-decorators/modifiers/hash");
13
+ const table_1 = require("../../table");
14
+ const hash_1 = require("../../modifiers/hash");
15
15
  describe("Modifiers - hash", () => {
16
- it("hashes string values", async () => HashStringValuesTest());
17
- it("hashes object values", async () => HashObjectValuesTest());
18
- it("handles undefined values", async () => HandleUndefinedValuesTest());
19
- it("uses custom hash algorithm", async () => UseCustomHashAlgorithmTest());
20
- it("generates unique salt for each field", async () => GenerateUniqueSaltForEachFieldTest());
21
- it("handles hash decorator", async () => HandleHashDecoratorTest());
22
- it("tests hash values correctly", async () => TestHashValuesTest());
23
- it("provides testHash method through mixin", async () => ProvideTestHashMethodTest());
16
+ it("hashes string values", async () => {
17
+ const modifier = new TestableHashModifier();
18
+ modifier.setOptions({ algorithm: "sha256" });
19
+ modifier.setMeta({});
20
+ const originalValue = "password123";
21
+ const hashed = modifier.lock(undefined, originalValue);
22
+ (0, chai_1.expect)(hashed).to.be.a("string");
23
+ (0, chai_1.expect)(hashed).to.not.equal(originalValue);
24
+ (0, chai_1.expect)(modifier.getMeta().salt).to.be.a("string");
25
+ });
26
+ it("hashes object values", async () => {
27
+ const modifier = new TestableHashModifier();
28
+ modifier.setOptions({ algorithm: "sha256" });
29
+ modifier.setMeta({});
30
+ const originalValue = { name: "John", age: 30 };
31
+ const hashed = modifier.lock(undefined, originalValue);
32
+ (0, chai_1.expect)(hashed).to.be.a("string");
33
+ (0, chai_1.expect)(hashed).to.not.equal(JSON.stringify(originalValue));
34
+ });
35
+ it("handles undefined values", async () => {
36
+ const modifier = new TestableHashModifier();
37
+ modifier.setOptions({ algorithm: "sha256" });
38
+ modifier.setMeta({});
39
+ const hashed = modifier.lock(undefined, undefined);
40
+ (0, chai_1.expect)(hashed).to.equal(undefined);
41
+ });
42
+ it("uses custom hash algorithm", async () => {
43
+ const modifier = new TestableHashModifier();
44
+ modifier.setOptions({ algorithm: "md5" });
45
+ modifier.setMeta({});
46
+ const originalValue = "test data";
47
+ const hashed = modifier.lock(undefined, originalValue);
48
+ (0, chai_1.expect)(hashed).to.be.a("string");
49
+ (0, chai_1.expect)(hashed).to.not.equal(originalValue);
50
+ (0, chai_1.expect)(modifier.getOptions().algorithm).to.equal("md5");
51
+ });
52
+ it("generates unique salt for each field", async () => {
53
+ const modifier1 = new TestableHashModifier();
54
+ modifier1.setOptions({ algorithm: "sha256" });
55
+ modifier1.setMeta({});
56
+ const modifier2 = new TestableHashModifier();
57
+ modifier2.setOptions({ algorithm: "sha256" });
58
+ modifier2.setMeta({});
59
+ const value = "test data";
60
+ const hashed1 = modifier1.lock(undefined, value);
61
+ const hashed2 = modifier2.lock(undefined, value);
62
+ (0, chai_1.expect)(hashed1).to.not.equal(hashed2);
63
+ (0, chai_1.expect)(modifier1.getMeta().salt).to.not.equal(modifier2.getMeta().salt);
64
+ });
65
+ it("handles hash decorator", async () => {
66
+ class TestTable extends table_1.Table.with(hash_1.HashModifier) {
67
+ }
68
+ __decorate([
69
+ (0, hash_1.Hashed)({ algorithm: "sha256" }),
70
+ (0, table_1.Field)("string"),
71
+ __metadata("design:type", String)
72
+ ], TestTable.prototype, "password", void 0);
73
+ const instance = new TestTable();
74
+ instance.password = "myPassword123";
75
+ (0, chai_1.expect)(instance.testHash("password", "myPassword123")).to.equal(true);
76
+ (0, chai_1.expect)(instance.testHash("password", "notMyPassword")).to.equal(false);
77
+ });
78
+ it("tests hash values correctly", async () => {
79
+ const modifier = new TestableHashModifier();
80
+ modifier.setOptions({ algorithm: "sha256" });
81
+ modifier.setMeta({});
82
+ const originalValue = "test data";
83
+ const hashed = modifier.lock(undefined, originalValue);
84
+ const isMatch = modifier.test(hashed, originalValue);
85
+ const isNotMatch = modifier.test(hashed, "wrong data");
86
+ (0, chai_1.expect)(isMatch).to.equal(true);
87
+ (0, chai_1.expect)(isNotMatch).to.equal(false);
88
+ });
89
+ it("provides testHash method through mixin", async () => {
90
+ class TestTable extends table_1.Table.with(hash_1.HashModifier) {
91
+ }
92
+ __decorate([
93
+ (0, hash_1.Hashed)({ algorithm: "sha256" }),
94
+ (0, table_1.Field)("string"),
95
+ __metadata("design:type", String)
96
+ ], TestTable.prototype, "password", void 0);
97
+ const instance = new TestTable();
98
+ instance.password = "myPassword123";
99
+ (0, chai_1.expect)(instance).to.have.property("testHash").that.is.a("function");
100
+ const isMatch = instance.testHash("password", "myPassword123");
101
+ const isNotMatch = instance.testHash("password", "wrongPassword");
102
+ (0, chai_1.expect)(isMatch).to.equal(true);
103
+ (0, chai_1.expect)(isNotMatch).to.equal(false);
104
+ });
24
105
  });
25
106
  class TestableHashModifier extends hash_1.HashModifier {
26
107
  setOptions(options) {
@@ -36,93 +117,4 @@ class TestableHashModifier extends hash_1.HashModifier {
36
117
  this.meta = meta;
37
118
  }
38
119
  }
39
- async function HashStringValuesTest() {
40
- const modifier = new TestableHashModifier();
41
- modifier.setOptions({ algorithm: "sha256" });
42
- modifier.setMeta({});
43
- const originalValue = "password123";
44
- const hashed = modifier.lock(undefined, originalValue);
45
- (0, chai_1.expect)(hashed).to.be.a("string");
46
- (0, chai_1.expect)(hashed).to.not.equal(originalValue);
47
- (0, chai_1.expect)(modifier.getMeta().salt).to.be.a("string");
48
- }
49
- async function HashObjectValuesTest() {
50
- const modifier = new TestableHashModifier();
51
- modifier.setOptions({ algorithm: "sha256" });
52
- modifier.setMeta({});
53
- const originalValue = { name: "John", age: 30 };
54
- const hashed = modifier.lock(undefined, originalValue);
55
- (0, chai_1.expect)(hashed).to.be.a("string");
56
- (0, chai_1.expect)(hashed).to.not.equal(JSON.stringify(originalValue));
57
- }
58
- async function HandleUndefinedValuesTest() {
59
- const modifier = new TestableHashModifier();
60
- modifier.setOptions({ algorithm: "sha256" });
61
- modifier.setMeta({});
62
- const hashed = modifier.lock(undefined, undefined);
63
- (0, chai_1.expect)(hashed).to.equal(undefined);
64
- }
65
- async function UseCustomHashAlgorithmTest() {
66
- const modifier = new TestableHashModifier();
67
- modifier.setOptions({ algorithm: "md5" });
68
- modifier.setMeta({});
69
- const originalValue = "test data";
70
- const hashed = modifier.lock(undefined, originalValue);
71
- (0, chai_1.expect)(hashed).to.be.a("string");
72
- (0, chai_1.expect)(hashed).to.not.equal(originalValue);
73
- (0, chai_1.expect)(modifier.getOptions().algorithm).to.equal("md5");
74
- }
75
- async function GenerateUniqueSaltForEachFieldTest() {
76
- const modifier1 = new TestableHashModifier();
77
- modifier1.setOptions({ algorithm: "sha256" });
78
- modifier1.setMeta({});
79
- const modifier2 = new TestableHashModifier();
80
- modifier2.setOptions({ algorithm: "sha256" });
81
- modifier2.setMeta({});
82
- const value = "test data";
83
- const hashed1 = modifier1.lock(undefined, value);
84
- const hashed2 = modifier2.lock(undefined, value);
85
- (0, chai_1.expect)(hashed1).to.not.equal(hashed2);
86
- (0, chai_1.expect)(modifier1.getMeta().salt).to.not.equal(modifier2.getMeta().salt);
87
- }
88
- async function HandleHashDecoratorTest() {
89
- class TestTable extends table_1.Table.with(hash_1.HashModifier) {
90
- }
91
- __decorate([
92
- (0, hash_1.Hashed)({ algorithm: "sha256" }),
93
- (0, table_1.Field)("string"),
94
- __metadata("design:type", String)
95
- ], TestTable.prototype, "password", void 0);
96
- const instance = new TestTable();
97
- instance.password = "myPassword123";
98
- (0, chai_1.expect)(instance.testHash("password", "myPassword123")).to.equal(true);
99
- (0, chai_1.expect)(instance.testHash("password", "notMyPassword")).to.equal(false);
100
- }
101
- async function TestHashValuesTest() {
102
- const modifier = new TestableHashModifier();
103
- modifier.setOptions({ algorithm: "sha256" });
104
- modifier.setMeta({});
105
- const originalValue = "test data";
106
- const hashed = modifier.lock(undefined, originalValue);
107
- const isMatch = modifier.test(hashed, originalValue);
108
- const isNotMatch = modifier.test(hashed, "wrong data");
109
- (0, chai_1.expect)(isMatch).to.equal(true);
110
- (0, chai_1.expect)(isNotMatch).to.equal(false);
111
- }
112
- async function ProvideTestHashMethodTest() {
113
- class TestTable extends table_1.Table.with(hash_1.HashModifier) {
114
- }
115
- __decorate([
116
- (0, hash_1.Hashed)({ algorithm: "sha256" }),
117
- (0, table_1.Field)("string"),
118
- __metadata("design:type", String)
119
- ], TestTable.prototype, "password", void 0);
120
- const instance = new TestTable();
121
- instance.password = "myPassword123";
122
- (0, chai_1.expect)(typeof instance.testHash).to.equal("function");
123
- const isMatch = instance.testHash("password", "myPassword123");
124
- const isNotMatch = instance.testHash("password", "wrongPassword");
125
- (0, chai_1.expect)(isMatch).to.equal(true);
126
- (0, chai_1.expect)(isNotMatch).to.equal(false);
127
- }
128
120
  //# sourceMappingURL=hash.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/hash.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hash.test.js","sourceRoot":"","sources":["../../../src/tests/modifiers/hash.test.ts"],"names":[],"mappings":"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"}