canner
Version:
Build CMS in few lines of code for different data sources
109 lines (96 loc) • 2.34 kB
JavaScript
import ConnectPattern from '../../../src/action/pattern/connectPattern';
const connectAction1 = {
type: 'CONNECT',
payload: {
key: 'array',
id: 'id1',
path: 'category',
value: {
id: 1
}
}
}
const connectAction2 = {
type: 'CONNECT',
payload: {
key: 'array',
id: 'id1',
path: 'category',
value: {
id: 2
}
}
}
const disconnectAction1 = {
type: 'DISCONNECT',
payload: {
key: 'array',
id: 'id1',
path: 'category',
value: {
id: 1
}
}
}
const disconnectAction2 = {
type: 'DISCONNECT',
payload: {
key: 'array',
id: 'id1',
path: 'category',
value: {
id: 2
}
}
}
const createAndConnectAction = {
type: 'CREATE_AND_CONNECT',
payload: {
key: 'array',
id: 'random1',
path: 'category',
value: {
title: 'title'
}
}
}
const disconnectAndDeleteAction1 = {
type: 'DISCONNECT_AND_DELET',
payload: {
key: 'array',
id: 'random2',
path: 'category',
value: {
id: 1
}
}
}
describe('connect pattern', () => {
let connectPattern;
beforeEach(() => {
connectPattern = new ConnectPattern();
});
it('merge connect and disconnect', () => {
// for now, connect pattern doesn't merge
connectPattern.addAction(connectAction1);
connectPattern.addAction(disconnectAction1);
connectPattern.addAction(connectAction1);
connectPattern.addAction(disconnectAction1);
connectPattern.addAction(connectAction1);
connectPattern.addAction(disconnectAction1);
expect(connectPattern.getActions().length).toBe(1);
expect(connectPattern.getActions()[0]).toEqual(disconnectAction1);
});
it('do not merge different id', () => {
connectPattern.addAction(connectAction1);
connectPattern.addAction(disconnectAction2);
connectPattern.addAction(connectAction2);
connectPattern.addAction(createAndConnectAction);
connectPattern.addAction(disconnectAndDeleteAction1);
expect(connectPattern.getActions().length).toBe(4);
expect(connectPattern.getActions()[0]).toEqual(connectAction1);
expect(connectPattern.getActions()[1]).toEqual(connectAction2);
expect(connectPattern.getActions()[2]).toEqual(createAndConnectAction);
expect(connectPattern.getActions()[3]).toEqual(disconnectAndDeleteAction1);
});
});