Skip to content

Commit

Permalink
removed unintended change
Browse files Browse the repository at this point in the history
Signed-off-by: Muhammad Aaqil <aaqilcs102@gmail.com>
  • Loading branch information
aaqilniz committed Sep 28, 2024
1 parent 0c7d04a commit 24bd657
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 57 deletions.
8 changes: 3 additions & 5 deletions lib/dao.js
Original file line number Diff line number Diff line change
Expand Up @@ -179,12 +179,10 @@ DataAccessObject._forDB = function(data) {
const res = {};
for (const propName in data) {
const type = this.getPropertyType(propName);
const value = data[propName];
if (value !== null && (type === 'JSON' || type === 'Any' ||
type === 'Object' || value instanceof Array)) {
res[propName] = JSON.stringify(value);
if (type === 'JSON' || type === 'Any' || type === 'Object' || data[propName] instanceof Array) {
res[propName] = JSON.stringify(data[propName]);
} else {
res[propName] = value;
res[propName] = data[propName];
}
}
return res;
Expand Down
52 changes: 0 additions & 52 deletions test/loopback-dl.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1363,58 +1363,6 @@ describe('Model define with scopes configuration', function() {
});
});

describe('DataAccessObject._forDB', function() {
const ds = new DataSource('memory');
const dao = ds.DataAccessObject;

it('should return input data if dataSource is not relational', function() {
const inputData = {testKey: 'testValue'};
dao.getDataSource = () => ({isRelational: () => false});

const outputData = dao._forDB(inputData);

assert.deepEqual(outputData, inputData);
});

it('should return JSON stringified values for appropriate types', function() {
const inputData = {
key1: [1, 2, 3],
key2: {subKey: 'value'},
key3: 'nonJSONvalue',
};
dao.getDataSource = () => ({isRelational: () => true});
dao.getPropertyType = (propName) => (propName !== 'key3' ? 'JSON' : 'String');

const outputData = dao._forDB(inputData);

assert.deepEqual(outputData, {
key1: JSON.stringify([1, 2, 3]),
key2: JSON.stringify({subKey: 'value'}),
key3: 'nonJSONvalue',
});
});

it('should return original value for non JSON, non Array types', function() {
const inputData = {key1: 'string', key2: 123, key3: true};
dao.getDataSource = () => ({isRelational: () => true});
dao.getPropertyType = () => 'String';

const outputData = dao._forDB(inputData);

assert.deepEqual(outputData, inputData);
});

it('should not process null values', function() {
const inputData = {key1: 'value', key2: null};
dao.getDataSource = () => ({isRelational: () => true});
dao.getPropertyType = (propName) => 'JSON';

const outputData = dao._forDB(inputData);

assert.deepEqual(outputData, {key1: JSON.stringify('value'), key2: null});
});
});

describe('DataAccessObject', function() {
let ds, model, where, error, filter;

Expand Down

0 comments on commit 24bd657

Please sign in to comment.