Socket
Socket
Sign inDemoInstall

redux-orm

Package Overview
Dependencies
Maintainers
1
Versions
70
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

redux-orm - npm Package Compare versions

Comparing version 0.8.1 to 0.8.2

lib/test/testUtils.js

1

lib/Model.js

@@ -234,3 +234,2 @@ 'use strict';

var idsToAdd = diffActions.add;
if (idsToDelete.length > 0) {

@@ -237,0 +236,0 @@ var _mergeKey;

@@ -41,2 +41,4 @@ 'use strict';

var _fields = require('../fields');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -163,2 +165,3 @@

var Model = void 0;
var Tag = void 0;
var instance = void 0;

@@ -193,2 +196,16 @@ var sessionMock = void 0;

Model.modelName = 'Model';
Model.fields = {
tags: new _fields.ManyToMany('Tag')
};
Tag = function (_BaseModel3) {
(0, _inherits3.default)(Tag, _BaseModel3);
function Tag() {
(0, _classCallCheck3.default)(this, Tag);
return (0, _possibleConstructorReturn3.default)(this, (0, _getPrototypeOf2.default)(Tag).apply(this, arguments));
}
return Tag;
}(_Model2.default);
Model.markAccessed = function () {

@@ -232,2 +249,30 @@ return undefined;

it('update works correctly when updating many-to-many relation', function () {
var addSpy = _sinon2.default.spy();
var removeSpy = _sinon2.default.spy();
var addUpdateSpy = _sinon2.default.spy();
Model.addUpdate = addUpdateSpy;
Model.fields = { fakem2m: new _fields.ManyToMany('_') };
instance = new Model({ id: 0, name: 'Tommi', fakem2m: [1, 2, 3] });
// instance.fakem2m = ... evokes a setter, needs to use defineProperty
// for mocking
Object.defineProperty(instance, 'fakem2m', {
value: {
add: addSpy,
remove: removeSpy,
idArr: [1, 2, 3]
}
});
instance.update({ fakem2m: [3, 4] });
expect(removeSpy).to.have.been.calledOnce;
expect(removeSpy).to.have.been.calledWith(1, 2);
expect(addSpy).to.have.been.calledOnce;
expect(addSpy).to.have.been.calledWith(4);
});
it('set works correctly', function () {

@@ -234,0 +279,0 @@ Model.addUpdate = function () {

@@ -6,3 +6,3 @@ 'use strict';

});
exports.includes = exports.ops = exports.objectShallowEquals = exports.reverseFieldErrorMessage = exports.normalizeEntity = exports.ListIterator = exports.reverseFieldName = exports.m2mToFieldName = exports.m2mFromFieldName = exports.m2mName = exports.attachQuerySetMethods = exports.match = undefined;
exports.arrayDiffActions = exports.includes = exports.ops = exports.objectShallowEquals = exports.reverseFieldErrorMessage = exports.normalizeEntity = exports.ListIterator = exports.reverseFieldName = exports.m2mToFieldName = exports.m2mFromFieldName = exports.m2mName = exports.attachQuerySetMethods = exports.match = undefined;

@@ -45,2 +45,10 @@ var _defineProperty = require('babel-runtime/core-js/object/define-property');

var _intersection = require('lodash/intersection');
var _intersection2 = _interopRequireDefault(_intersection);
var _difference = require('lodash/difference');
var _difference2 = _interopRequireDefault(_difference);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -286,2 +294,16 @@

function arrayDiffActions(sourceArr, targetArr) {
var itemsInBoth = (0, _intersection2.default)(sourceArr, targetArr);
var deleteItems = (0, _difference2.default)(sourceArr, itemsInBoth);
var addItems = (0, _difference2.default)(targetArr, itemsInBoth);
if (deleteItems.length || addItems.length) {
return {
delete: deleteItems,
add: addItems
};
}
return null;
}
// A global instance of immutable-ops for general use

@@ -301,2 +323,3 @@ var ops = (0, _immutableOps2.default)();

exports.ops = ops;
exports.includes = _includes2.default;
exports.includes = _includes2.default;
exports.arrayDiffActions = arrayDiffActions;
{
"name": "redux-orm",
"version": "0.8.1",
"version": "0.8.2",
"description": "Simple ORM to manage and query your state trees",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

@@ -417,2 +417,10 @@ redux-orm

### 0.8.2
Fixed [regression in `Model.prototype.update`](https://github.com/tommikaikkonen/redux-orm/issues/23)
### 0.8.1
Added `babel-runtime to dependencies`
### 0.8.0

@@ -419,0 +427,0 @@

@@ -564,3 +564,2 @@ import forOwn from 'lodash/forOwn';

const idsToAdd = diffActions.add;
if (idsToDelete.length > 0) {

@@ -567,0 +566,0 @@ this[mergeKey].remove(...idsToDelete);

@@ -8,2 +8,3 @@ import chai from 'chai';

import { UPDATE, DELETE } from '../constants';
import { ManyToMany } from '../fields';

@@ -108,2 +109,3 @@ describe('Model', () => {

let Model;
let Tag;
let instance;

@@ -127,2 +129,7 @@ let sessionMock;

Model.modelName = 'Model';
Model.fields = {
tags: new ManyToMany('Tag'),
};
Tag = class extends BaseModel {};
Model.markAccessed = () => undefined;

@@ -164,2 +171,30 @@

it('update works correctly when updating many-to-many relation', () => {
const addSpy = sinon.spy();
const removeSpy = sinon.spy();
const addUpdateSpy = sinon.spy();
Model.addUpdate = addUpdateSpy;
Model.fields = { fakem2m: new ManyToMany('_') };
instance = new Model({ id: 0, name: 'Tommi', fakem2m: [1, 2, 3] });
// instance.fakem2m = ... evokes a setter, needs to use defineProperty
// for mocking
Object.defineProperty(instance, 'fakem2m', {
value: {
add: addSpy,
remove: removeSpy,
idArr: [1, 2, 3],
},
});
instance.update({ fakem2m: [3, 4] });
expect(removeSpy).to.have.been.calledOnce;
expect(removeSpy).to.have.been.calledWith(1, 2);
expect(addSpy).to.have.been.calledOnce;
expect(addSpy).to.have.been.calledWith(4);
});
it('set works correctly', () => {

@@ -166,0 +201,0 @@ Model.addUpdate = () => undefined;

import forOwn from 'lodash/forOwn';
import includes from 'lodash/includes';
import getImmutableOps from 'immutable-ops';
import intersection from 'lodash/intersection';
import difference from 'lodash/difference';

@@ -228,2 +230,16 @@ /**

function arrayDiffActions(sourceArr, targetArr) {
const itemsInBoth = intersection(sourceArr, targetArr);
const deleteItems = difference(sourceArr, itemsInBoth);
const addItems = difference(targetArr, itemsInBoth);
if (deleteItems.length || addItems.length) {
return {
delete: deleteItems,
add: addItems,
};
}
return null;
}
// A global instance of immutable-ops for general use

@@ -245,2 +261,3 @@ const ops = getImmutableOps();

includes,
arrayDiffActions,
};

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc