Skip to content

Commit

Permalink
fix(graphql-relational-transformer): fix belongs to e2e test (#8738)
Browse files Browse the repository at this point in the history
  • Loading branch information
lazpavel committed Nov 8, 2021
1 parent c83507b commit 233ed56
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 4 deletions.
Expand Up @@ -278,17 +278,19 @@ test('creates belongs to relationship with implicit fields', () => {

const create1Input = schema.definitions.find((def: any) => def.name && def.name.value === 'CreateTest1Input') as any;
expect(create1Input).toBeDefined();
expect(create1Input.fields.length).toEqual(3);
expect(create1Input.fields.length).toEqual(4);
expect(create1Input.fields.find((f: any) => f.name.value === 'id')).toBeDefined();
expect(create1Input.fields.find((f: any) => f.name.value === 'friendID')).toBeDefined();
expect(create1Input.fields.find((f: any) => f.name.value === 'email')).toBeDefined();
expect(create1Input.fields.find((f: any) => f.name.value === 'testOtherHalfId')).toBeDefined();

const update1Input = schema.definitions.find((def: any) => def.name && def.name.value === 'UpdateTest1Input') as any;
expect(update1Input).toBeDefined();
expect(update1Input.fields.length).toEqual(3);
expect(update1Input.fields.length).toEqual(4);
expect(update1Input.fields.find((f: any) => f.name.value === 'id')).toBeDefined();
expect(update1Input.fields.find((f: any) => f.name.value === 'friendID')).toBeDefined();
expect(update1Input.fields.find((f: any) => f.name.value === 'email')).toBeDefined();
expect(update1Input.fields.find((f: any) => f.name.value === 'testOtherHalfId')).toBeDefined();

const createInput = schema.definitions.find((def: any) => def.name && def.name.value === 'CreateTestInput') as any;
expect(createInput).toBeDefined();
Expand Down
9 changes: 7 additions & 2 deletions packages/amplify-graphql-relational-transformer/src/schema.ts
Expand Up @@ -166,8 +166,13 @@ export function ensureHasOneConnectionField(
* but does not add additional fields as this will be handled by the hasMany directive
*/
export function ensureBelongsToConnectionField(config: BelongsToDirectiveConfiguration, ctx: TransformerContextProvider) {
const { relatedType, relatedField } = config;
config.connectionFields.push(getConnectionAttributeName(relatedType.name.value, relatedField.name.value));
const { relationType, relatedType, relatedField } = config;
if (relationType === 'hasOne') {
ensureHasOneConnectionField(config, ctx, getConnectionAttributeName(relatedType.name.value, relatedField.name.value));
} else {
// hasMany
config.connectionFields.push(getConnectionAttributeName(relatedType.name.value, relatedField.name.value));
}
}

export function ensureHasManyConnectionField(
Expand Down

0 comments on commit 233ed56

Please sign in to comment.