Skip to content

Commit fdb52d9

Browse files
committed
Behold the test that catches that branch
1 parent 6f589c4 commit fdb52d9

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

__tests__/formatItem.unit.test.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ DefaultTable.entities = new Entity({
3030
linked1: ['sk',0, { save: false }],
3131
linked2: ['sk',1, { save: false }],
3232
composite: { type: 'string', alias: 'composite_alias' },
33-
linked_alias1: ['composite',0, { save: false, alias: 'linked_alias_one' }],
34-
linked_alias2: ['composite',1, { save: false, alias: 'linked_alias_two' }],
33+
linked_alias1: ['composite',0, { save: false, alias: 'linked_alias2' }],
34+
linked_alias3: ['composite',1, { save: false, alias: 'linked_alias4' }],
35+
composite2_alias: { type: 'string', map: 'composite2' },
36+
linked_alias5: ['composite2_alias',0, { save: false }],
37+
linked_alias7: ['composite2_alias',1, { save: false }],
3538
}
3639
})
3740

@@ -88,7 +91,12 @@ describe('formatItem', () => {
8891

8992
it('formats item with linked aliased fields', () => {
9093
let result = formatItem(DocumentClient)(DefaultTable.User.schema.attributes,DefaultTable.User.linked,{ composite: 'test1#test2' })
91-
expect(result).toEqual({ composite_alias: 'test1#test2', linked_alias_one: 'test1', linked_alias_two: 'test2' })
94+
expect(result).toEqual({ composite_alias: 'test1#test2', linked_alias2: 'test1', linked_alias4: 'test2' })
95+
})
96+
97+
it('formats item with linked mapped fields', () => {
98+
let result = formatItem(DocumentClient)(DefaultTable.User.schema.attributes,DefaultTable.User.linked,{ composite2: 'test1#test2' })
99+
expect(result).toEqual({ composite2_alias: 'test1#test2', linked_alias5: 'test1', linked_alias7: 'test2' })
92100
})
93101

94102
it('passes through attribute not specified in entity', () => {

lib/formatItem.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ module.exports = (DocumentClient) => (attributes,linked,item,include=[]) => {
1818
const validateType = validateTypes(DocumentClient)
1919

2020
return Object.keys(item).reduce((acc,field) => {
21-
if (linked[field]) {
22-
Object.assign(acc, (linked[field]).reduce((acc,f,i) => {
21+
const link = linked[field] || attributes[field] && attributes[field].alias && linked[attributes[field].alias]
22+
if (link) {
23+
Object.assign(acc, link.reduce((acc,f,i) => {
2324
if (attributes[f].save || attributes[f].hidden || (include.length > 0 && !include.includes(f))) return acc
2425
return Object.assign(acc,{
2526
[attributes[f].alias || f]: validateType(attributes[f],f,

0 commit comments

Comments
 (0)