Skip to content

Commit

Permalink
create transformClientPayload()
Browse files Browse the repository at this point in the history
  • Loading branch information
josephsavona committed Sep 18, 2015
1 parent cfbfd6a commit f4e0aca
Show file tree
Hide file tree
Showing 9 changed files with 488 additions and 234 deletions.
27 changes: 14 additions & 13 deletions src/store/__tests__/RelayStoreData_cacheManager-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ var RelayConnectionInterface = require('RelayConnectionInterface');
var RelayMockCacheManager = require('RelayMockCacheManager');
var RelayMutationType = require('RelayMutationType');
var RelayStoreData = require('RelayStoreData');
var generateRQLFieldAlias = require('generateRQLFieldAlias');

var transformClientPayload = require('transformClientPayload');

describe('RelayStoreData', function() {
var cacheManager;
Expand Down Expand Up @@ -274,10 +275,10 @@ describe('RelayStoreData', function() {
}
}
`);
var response = {
var response = transformClientPayload(query, {
node: {
id: '123',
[generateRQLFieldAlias('friends.first(2)')]: {
friends: {
edges: [
{
node: {
Expand All @@ -298,7 +299,7 @@ describe('RelayStoreData', function() {
},
},
},
};
});
storeData.handleQueryPayload(query, response);

expect(cacheManager).toContainCalledMethods({
Expand Down Expand Up @@ -362,18 +363,18 @@ describe('RelayStoreData', function() {
}
}
`);
var response = {
var response = transformClientPayload(query, {
node: {
id: '123',
[generateRQLFieldAlias('friends.first(2)')]: {
friends: {
edges: [],
[PAGE_INFO]: {
[HAS_PREV_PAGE]: false,
[HAS_NEXT_PAGE]: true,
},
},
},
};
});
storeData.handleQueryPayload(query, response);

expect(cacheManager).toContainCalledMethods({
Expand Down Expand Up @@ -460,10 +461,10 @@ describe('RelayStoreData', function() {
}
}
`);
var response = {
var response = transformClientPayload(query, {
node: {
id: '123',
[generateRQLFieldAlias('comments.first(1)')]: {
comments: {
count: 2,
edges: [
{
Expand All @@ -479,7 +480,7 @@ describe('RelayStoreData', function() {
},
},
}
};
});
storeData.handleQueryPayload(query, response);

var configs = [{
Expand Down Expand Up @@ -581,10 +582,10 @@ describe('RelayStoreData', function() {
}
}
`);
var response = {
var response = transformClientPayload(query, {
node: {
id: '123',
[generateRQLFieldAlias('comments.first(1)')]: {
comments: {
count: 2,
edges: [
{
Expand All @@ -600,7 +601,7 @@ describe('RelayStoreData', function() {
},
},
}
};
});
storeData.handleQueryPayload(query, response);

var configs = [{
Expand Down
4 changes: 4 additions & 0 deletions src/tools/__mocks__/RelayTestUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -480,8 +480,12 @@ var RelayTestUtils = {
var RelayChangeTracker = require('RelayChangeTracker');
var RelayQueryTracker = require('RelayQueryTracker');
var RelayQueryWriter = require('RelayQueryWriter');
var transformClientPayload = require('transformClientPayload');
var writeRelayQueryPayload = require('writeRelayQueryPayload');

// rewrite any plain name/alias property names into storage keys
payload = transformClientPayload(query, payload);

tracker = tracker || new RelayQueryTracker();
options = options || {};
var changeTracker = new RelayChangeTracker();
Expand Down
14 changes: 14 additions & 0 deletions src/traversal/__mocks__/transformClientPayload.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/

'use strict';

module.exports = jest.genMockFunction().mockImplementation(
require.requireActual('transformClientPayload')
);
50 changes: 21 additions & 29 deletions src/traversal/__tests__/diffRelayQuery_connection-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ var RelayConnectionInterface = require('RelayConnectionInterface');
var RelayNodeInterface = require('RelayNodeInterface');
var RelayQueryTracker = require('RelayQueryTracker');
var diffRelayQuery = require('diffRelayQuery');
var generateRQLFieldAlias = require('generateRQLFieldAlias');

describe('diffRelayQuery', () => {
var RelayRecordStore;
Expand Down Expand Up @@ -76,10 +75,9 @@ describe('diffRelayQuery', () => {
var store = new RelayRecordStore({records}, {map: rootCallMap});
var tracker = new RelayQueryTracker();

var alias = generateRQLFieldAlias('newsFeed.first(3)');
var payload = {
viewer: {
[alias]: {
newsFeed: {
edges: [
{cursor: 'c1', node: {id: 's1'}},
{cursor: 'c2', node: {id: 's2'}},
Expand Down Expand Up @@ -119,10 +117,9 @@ describe('diffRelayQuery', () => {
var tracker = new RelayQueryTracker();

// Write full data for 3 of 5 records, nothing for edges 4-5
var alias = generateRQLFieldAlias('newsFeed.first(5)');
var payload = {
viewer: {
[alias]: {
newsFeed: {
edges: [
{cursor: 'c1', node: {id: 's1'}},
{cursor: 'c2', node: {id: 's2'}},
Expand Down Expand Up @@ -176,22 +173,6 @@ describe('diffRelayQuery', () => {
var tracker = new RelayQueryTracker();

// Provide empty IDs to simulate non-refetchable nodes
var alias = generateRQLFieldAlias('newsFeed.first(3)');
var payload = {
viewer: {
[alias]: {
edges: [
{cursor: 'c1', node: {id:'', message:{text:'s1'}}},
{cursor: 'c2', node: {id:'', message:{text:'s1'}}},
{cursor: 'c3', node: {id:'', message:{text:'s1'}}},
],
[PAGE_INFO]: {
[HAS_NEXT_PAGE]: true,
[HAS_PREV_PAGE]: false,
},
},
},
};
var writeQuery = getNode(Relay.QL`
query {
viewer {
Expand All @@ -207,6 +188,21 @@ describe('diffRelayQuery', () => {
}
}
`);
var payload = {
viewer: {
newsFeed: {
edges: [
{cursor: 'c1', node: {id:'', message:{text:'s1'}}},
{cursor: 'c2', node: {id:'', message:{text:'s1'}}},
{cursor: 'c3', node: {id:'', message:{text:'s1'}}},
],
[PAGE_INFO]: {
[HAS_NEXT_PAGE]: true,
[HAS_PREV_PAGE]: false,
},
},
},
};
writePayload(store, writeQuery, payload, tracker);

// `feedback{id}` is missing but there is no way to refetch it
Expand Down Expand Up @@ -241,10 +237,9 @@ describe('diffRelayQuery', () => {
var store = new RelayRecordStore({records}, {map: rootCallMap});
var tracker = new RelayQueryTracker();

var alias = generateRQLFieldAlias('newsFeed.first(3)');
var payload = {
viewer: {
[alias]: {
newsFeed: {
edges: [
{cursor: 'c1', node: {id:'s1', message:{text:'s1'}}},
{cursor: 'c2', node: {id:'s2', message:{text:'s1'}}},
Expand Down Expand Up @@ -339,10 +334,9 @@ describe('diffRelayQuery', () => {
var store = new RelayRecordStore({records}, {map: rootCallMap});
var tracker = new RelayQueryTracker();

var alias = generateRQLFieldAlias('newsFeed.first(3)');
var payload = {
viewer: {
[alias]: {
newsFeed: {
edges: [
{cursor: 'c1', node: {id:'s1', message:{text:'s1'}}},
{cursor: 'c2', node: {id:'s2', message:{text:'s1'}}},
Expand Down Expand Up @@ -492,10 +486,9 @@ describe('diffRelayQuery', () => {
var store = new RelayRecordStore({records}, {map: rootCallMap});
var tracker = new RelayQueryTracker();

var alias = generateRQLFieldAlias('notificationStories.first(3)');
var payload = {
viewer: {
[alias]: {
notificationStories: {
edges: [
{cursor: 'c1', node: {id:'s1', message:{text:'s1'}}},
{cursor: 'c2', node: {id:'s2', message:{text:'s1'}}},
Expand Down Expand Up @@ -598,10 +591,9 @@ describe('diffRelayQuery', () => {
var store = new RelayRecordStore({records}, {map: rootCallMap});
var tracker = new RelayQueryTracker();

var alias = generateRQLFieldAlias('newsFeed.first(1)');
var payload = {
viewer: {
[alias]: {
newsFeed: {
edges: [
{cursor: 'c1', node: {id:'s1', message:{text:'s1'}}},
],
Expand Down
Loading

0 comments on commit f4e0aca

Please sign in to comment.