Skip to content

Commit

Permalink
fix: add nonScalarFields and arrayFields to schemas with mapped names (
Browse files Browse the repository at this point in the history
…#2689)

* fix: 🐛 generate array/non-scalar fields

use non-mapped table name to generate array/non-scalar fields on
relational queries

✅ Closes: #2581

* test: 💍 update snapshots

update snapshots for graphql-name-mapping-transformer

* test: 💍 add tests

add tests to ensure array/non-scalar fields are properly set on
relational objects

---------

Co-authored-by: Kevin Kamimura <kevin@yepstr.com>
  • Loading branch information
palpatim and kekami committed Jul 3, 2024
1 parent 3e3dfca commit 4feb898
Show file tree
Hide file tree
Showing 6 changed files with 376 additions and 58 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 1`]
#set( $lambdaInput.operationName = \\"createEmployee\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -197,8 +197,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 2`]
#set( $lambdaInput.operationName = \\"updateEmployee\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -224,8 +224,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 3`]
#set( $lambdaInput.operationName = \\"deleteEmployee\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -248,8 +248,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 4`]
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.authFilter = {} )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -275,8 +275,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 5`]
#if( !$util.isNullOrEmpty($ctx.stash.authFilter) )
#set( $lambdaInput.args.metadata.authFilter = $ctx.stash.authFilter )
#end
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"tasks\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -299,8 +299,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 6`]
#set( $lambdaInput.operationName = \\"createTask\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -325,8 +325,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 7`]
#set( $lambdaInput.operationName = \\"updateTask\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -352,8 +352,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 8`]
#set( $lambdaInput.operationName = \\"deleteTask\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -376,8 +376,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 9`]
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.authFilter = {} )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand All @@ -403,8 +403,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 10`
#if( !$util.isNullOrEmpty($ctx.stash.authFilter) )
#set( $lambdaInput.args.metadata.authFilter = $ctx.stash.authFilter )
#end
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"employee\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
Expand Down Expand Up @@ -433,8 +433,8 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 11`
#set( $lambdaInput.operationName = \\"ConnectionQuery\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"employee\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.putAll($util.defaultIfNull($context.arguments, {})))
Expand Down Expand Up @@ -468,8 +468,148 @@ exports[`@refersTo with @hasMany for RDS Models model table names are mapped 12`
#set( $lambdaInput.operationName = \\"BelongsToConnectionQuery\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [\\"id\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [] )
#set( $lambdaInput.args.metadata.nonScalarFields = [] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"tasks\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.putAll($util.defaultIfNull($context.arguments, {})))
#if( !$lambdaInput.args.input )
#set( $lambdaInput.args.input = {} )
#end
#if( !$util.isNullOrEmpty($ctx.stash.authFilter) )
#set( $lambdaInput.args.metadata.authFilter = $ctx.stash.authFilter )
#end
$util.qr($lambdaInput.args.input.put(\\"id\\", $ctx.source.employeeId))
{
\\"version\\": \\"2018-05-29\\",
\\"operation\\": \\"Invoke\\",
\\"payload\\": $util.toJson($lambdaInput)
}
## [End] Invoke RDS Lambda data source. **"
`;

exports[`@refersTo with @hasMany for RDS Models model table names are mapped 13`] = `
"## [Start] Invoke RDS Lambda data source. **
#if( $ctx.stash.deniedField )
#set( $result = {
\\"items\\": []
} )
#return($result)
#end
#set( $lambdaInput = {} )
#set( $lambdaInput.args = {} )
#set( $lambdaInput.table = \\"Todo\\" )
#set( $lambdaInput.operation = \\"LIST\\" )
#set( $lambdaInput.operationName = \\"ConnectionQuery\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"employee\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.putAll($util.defaultIfNull($context.arguments, {})))
#if( !$lambdaInput.args.filter )
#set( $lambdaInput.args.filter = {} )
#end
#if( !$util.isNullOrEmpty($ctx.stash.authFilter) )
#set( $lambdaInput.args.metadata.authFilter = $ctx.stash.authFilter )
#end
$util.qr($lambdaInput.args.filter.put(\\"employeeId\\", {
\\"eq\\": $ctx.source.id
}))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
{
\\"version\\": \\"2018-05-29\\",
\\"operation\\": \\"Invoke\\",
\\"payload\\": $util.toJson($lambdaInput)
}
## [End] Invoke RDS Lambda data source. **"
`;

exports[`@refersTo with @hasMany for RDS Models model table names are mapped 14`] = `
"## [Start] Invoke RDS Lambda data source. **
#if( $ctx.stash.deniedField )
#return($util.toJson(null))
#end
#set( $lambdaInput = {} )
#set( $lambdaInput.args = {} )
#set( $lambdaInput.table = \\"Person\\" )
#set( $lambdaInput.operation = \\"GET\\" )
#set( $lambdaInput.operationName = \\"BelongsToConnectionQuery\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [\\"id\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"tasks\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.putAll($util.defaultIfNull($context.arguments, {})))
#if( !$lambdaInput.args.input )
#set( $lambdaInput.args.input = {} )
#end
#if( !$util.isNullOrEmpty($ctx.stash.authFilter) )
#set( $lambdaInput.args.metadata.authFilter = $ctx.stash.authFilter )
#end
$util.qr($lambdaInput.args.input.put(\\"id\\", $ctx.source.employeeId))
{
\\"version\\": \\"2018-05-29\\",
\\"operation\\": \\"Invoke\\",
\\"payload\\": $util.toJson($lambdaInput)
}
## [End] Invoke RDS Lambda data source. **"
`;

exports[`@refersTo with @hasMany for RDS Models model table names are mapped 15`] = `
"## [Start] Invoke RDS Lambda data source. **
#if( $ctx.stash.deniedField )
#set( $result = {
\\"items\\": []
} )
#return($result)
#end
#set( $lambdaInput = {} )
#set( $lambdaInput.args = {} )
#set( $lambdaInput.table = \\"Todo\\" )
#set( $lambdaInput.operation = \\"LIST\\" )
#set( $lambdaInput.operationName = \\"ConnectionQuery\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"employee\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.putAll($util.defaultIfNull($context.arguments, {})))
#if( !$lambdaInput.args.filter )
#set( $lambdaInput.args.filter = {} )
#end
#if( !$util.isNullOrEmpty($ctx.stash.authFilter) )
#set( $lambdaInput.args.metadata.authFilter = $ctx.stash.authFilter )
#end
$util.qr($lambdaInput.args.filter.put(\\"employeeId\\", {
\\"eq\\": $ctx.source.id
}))
$util.qr($lambdaInput.args.metadata.keys.addAll($util.defaultIfNull($ctx.stash.keys, [])))
{
\\"version\\": \\"2018-05-29\\",
\\"operation\\": \\"Invoke\\",
\\"payload\\": $util.toJson($lambdaInput)
}
## [End] Invoke RDS Lambda data source. **"
`;

exports[`@refersTo with @hasMany for RDS Models model table names are mapped 16`] = `
"## [Start] Invoke RDS Lambda data source. **
#if( $ctx.stash.deniedField )
#return($util.toJson(null))
#end
#set( $lambdaInput = {} )
#set( $lambdaInput.args = {} )
#set( $lambdaInput.table = \\"Person\\" )
#set( $lambdaInput.operation = \\"GET\\" )
#set( $lambdaInput.operationName = \\"BelongsToConnectionQuery\\" )
#set( $lambdaInput.args.metadata = {} )
#set( $lambdaInput.args.metadata.keys = [\\"id\\"] )
#set( $lambdaInput.args.metadata.arrayFields = [\\"tags\\"] )
#set( $lambdaInput.args.metadata.nonScalarFields = [\\"tags\\", \\"tasks\\"] )
#set( $lambdaInput.args.metadata.fieldMap = {} )
$util.qr($lambdaInput.args.metadata.fieldMap.putAll($util.defaultIfNull($context.stash.fieldMap, {})))
$util.qr($lambdaInput.args.putAll($util.defaultIfNull($context.arguments, {})))
Expand Down
Loading

0 comments on commit 4feb898

Please sign in to comment.