Skip to content

Commit 9beef0c

Browse files
committed
✨ ✅ Add encrypted data tests
Signed-off-by: SAMI BETTAYEB <[email protected]>
1 parent b4ff5e7 commit 9beef0c

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

test/postgresql.encrypted.test.js

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// Copyright IBM Corp. 2014,2019. All Rights Reserved.
2+
// Node module: loopback-connector-postgresql
3+
// This file is licensed under the Artistic License 2.0.
4+
// License text available at https://opensource.org/licenses/Artistic-2.0
5+
6+
'use strict';
7+
process.env.NODE_ENV = 'test';
8+
require('should');
9+
const expect = require('chai').expect;
10+
const async = require('async');
11+
const chai = require('chai');
12+
const chaiSubset = require('chai-subset');
13+
chai.use(chaiSubset);
14+
15+
let db;
16+
17+
before(function() {
18+
db = global.getSchema();
19+
});
20+
21+
describe('Mapping models', function() {
22+
it('should return encrypted data by filter', function(done) {
23+
const schema =
24+
{
25+
'name': 'EncryptedData',
26+
'options': {
27+
'idInjection': false,
28+
'postgresql': {
29+
'schema': 'public', 'table': 'encrypted_data',
30+
},
31+
},
32+
'properties': {
33+
'id': {
34+
'type': 'String',
35+
'id': true,
36+
},
37+
'data': {
38+
'type': 'String',
39+
},
40+
},
41+
'mixins': {
42+
'Encryption': {
43+
'fields': [
44+
'data',
45+
],
46+
},
47+
},
48+
};
49+
50+
const EncryptedData = db.createModel(schema.name, schema.properties, schema.options);
51+
EncryptedData.settings.mixins = schema.mixins;
52+
53+
db.automigrate('EncryptedData', function(err) {
54+
if (err) console.error({err});
55+
EncryptedData.create({
56+
id: '2',
57+
data: '1c93722e6cf53f93dd4eb15a18444dc3e910fded18239db612794059af1fa5e8',
58+
}, function(err, encryptedData) {
59+
if (err) console.log({err2: err});
60+
async.series([
61+
function(callback) {
62+
EncryptedData.findOne({where: {data: {ilike: '%test%'}}}, function(err, retreivedData) {
63+
if (err) console.error({err111: err});
64+
expect(retreivedData).to.containSubset(encryptedData);
65+
callback(null, retreivedData);
66+
});
67+
},
68+
function(callback) {
69+
EncryptedData.find({where: {data: {ilike: '%not found%'}}}, function(err, retreivedData) {
70+
if (err) console.error({err111: err});
71+
expect(retreivedData.length).to.equal(0);
72+
callback(null, retreivedData);
73+
});
74+
},
75+
], done);
76+
});
77+
});
78+
});
79+
});

0 commit comments

Comments
 (0)