Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 28 additions & 30 deletions packages/data-schema/__tests__/CustomOperations.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -907,15 +907,15 @@ describe('CustomOperation transform', () => {
.query()
.arguments({})
.handler(a.handler.function(fn1).async())
.authorization((allow) => allow.authenticated())
.authorization((allow) => allow.authenticated()),
});

const { schema, lambdaFunctions } = s.transform();
expect(schema).toMatchSnapshot();
expect(lambdaFunctions).toMatchObject({
FnGetPostDetails: fn1,
});
})
});

test('defineFunction sync - async', () => {
const fn1 = defineFunctionStub({});
Expand All @@ -927,15 +927,15 @@ describe('CustomOperation transform', () => {
a.handler.function(fn1),
a.handler.function(fn1).async(),
])
.authorization((allow) => allow.authenticated())
.authorization((allow) => allow.authenticated()),
});

const { schema, lambdaFunctions } = s.transform();
expect(schema).toMatchSnapshot();
expect(lambdaFunctions).toMatchObject({
FnGetPostDetails: fn1,
});
})
});

test('defineFunction sync - async with returns generates type errors', () => {
const fn1 = defineFunctionStub({});
Expand All @@ -949,9 +949,9 @@ describe('CustomOperation transform', () => {
])
.authorization((allow) => allow.authenticated())
// @ts-expect-error
.returns({ })
.returns({}),
});
})
});

test('defineFunction async - async', () => {
const fn1 = defineFunctionStub({});
Expand All @@ -965,7 +965,7 @@ describe('CustomOperation transform', () => {
a.handler.function(fn1).async(),
a.handler.function(fn2).async(),
])
.authorization((allow) => allow.authenticated())
.authorization((allow) => allow.authenticated()),
});

const { schema, lambdaFunctions } = s.transform();
Expand All @@ -974,7 +974,7 @@ describe('CustomOperation transform', () => {
FnGetPostDetails: fn1,
FnGetPostDetails2: fn2,
});
})
});

test('defineFunction async - sync', () => {
const fn1 = defineFunctionStub({});
Expand All @@ -987,12 +987,12 @@ describe('CustomOperation transform', () => {
a.handler.function(fn1),
])
.returns(a.customType({}))
.authorization((allow) => allow.authenticated())
.authorization((allow) => allow.authenticated()),
});

const { schema, lambdaFunctions } = s.transform();
expect(schema).toMatchSnapshot();
})
});

test('pipeline / mix', () => {
const fn1 = defineFunctionStub({});
Expand Down Expand Up @@ -1341,15 +1341,14 @@ describe('custom operations + custom type auth inheritance', () => {

test('implicit custom type inherits auth rules from referencing op', () => {
const s = a.schema({
MyQueryReturnType: a.customType({
fieldA: a.string(),
fieldB: a.integer(),
}),
myQuery: a
.query()
.handler(a.handler.function('myFn'))
.returns(
a.customType({
fieldA: a.string(),
fieldB: a.integer(),
}),
)
.returns(a.ref('MyQueryReturnType'))
.authorization((allow) => allow.publicApiKey()),
});

Expand All @@ -1363,23 +1362,22 @@ describe('custom operations + custom type auth inheritance', () => {

test('nested custom types inherit auth rules from top-level referencing op', () => {
const s = a.schema({
MyQueryReturnType: a.customType({
fieldA: a.string(),
fieldB: a.integer(),
nestedCustomType: a.customType({
nestedA: a.string(),
nestedB: a.string(),
grandChild: a.customType({
grandA: a.string(),
grandB: a.string(),
}),
}),
}),
myQuery: a
.query()
.handler(a.handler.function('myFn'))
.returns(
a.customType({
fieldA: a.string(),
fieldB: a.integer(),
nestedCustomType: a.customType({
nestedA: a.string(),
nestedB: a.string(),
grandChild: a.customType({
grandA: a.string(),
grandB: a.string(),
}),
}),
}),
)
Comment on lines 1364 to -1382

This comment was marked as outdated.

.returns(a.ref('MyQueryReturnType'))
.authorization((allow) => allow.publicApiKey()),
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,20 +242,20 @@ type Query {
`;

exports[`custom operations Add entities to SQL schema add custom type, enum, and custom query to generated SQL schema 1`] = `
"type post @model(timestamps: null) @auth(rules: [{allow: private}])
{
title: String!
description: String
author: String
}

enum PostStatus {
"enum PostStatus {
draft
pending
approved
published
}

type post @model(timestamps: null) @auth(rules: [{allow: private}])
{
title: String!
description: String
author: String
}

type PostMeta @aws_cognito_user_pools
{
viewCount: Int
Expand Down Expand Up @@ -595,7 +595,11 @@ exports[`schema auth rules global public auth - multiple models 1`] = `
"functionSlots": [],
"jsFunctions": [],
"lambdaFunctions": {},
"schema": "type A @model @auth(rules: [{allow: public, provider: apiKey}])
"schema": "enum DTired {
?
}

type A @model @auth(rules: [{allow: public, provider: apiKey}])
{
field: String
}
Expand All @@ -621,10 +625,6 @@ type D @model @auth(rules: [{allow: public, provider: apiKey}])
tired: DTired
cId: ID
c: C @belongsTo(references: ["cId"])
}

enum DTired {
?
}",
}
`;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`CustomOperation transform dynamo schema Custom Mutation w required arg and enum 1`] = `
"type Post @model @auth(rules: [{allow: private}])
{
title: String
}

enum LikePostReactionType {
"enum LikePostReactionType {
:shipit:
:risitas:
}

type Post @model @auth(rules: [{allow: private}])
{
title: String
}

type Mutation {
likePost(postId: String!, reactionType: LikePostReactionType): Post
}"
Expand Down Expand Up @@ -45,17 +45,7 @@ exports[`CustomOperation transform dynamo schema Custom mutation w inline boolea
`;

exports[`CustomOperation transform dynamo schema Custom mutation w inline custom return type 1`] = `
"type LikePostReturnType
{
stringField: String
intField: Int
floatField: Float
boolField: Boolean
datetimeField: AWSDateTime
jsonField: AWSJSON
}

type Mutation {
"type Mutation {
likePost(postId: String!): LikePostReturnType
}"
`;
Expand Down Expand Up @@ -109,17 +99,7 @@ type Query {
`;

exports[`CustomOperation transform dynamo schema Custom query w inline custom return type 1`] = `
"type GetPostDetailsReturnType
{
stringField: String
intField: Int
floatField: Float
boolField: Boolean
datetimeField: AWSDateTime
jsonField: AWSJSON
}

type Query {
"type Query {
getPostDetails(postId: String!): GetPostDetailsReturnType
}"
`;
Expand Down Expand Up @@ -258,12 +238,7 @@ type Subscription {
`;

exports[`CustomOperation transform dynamo schema custom subscriptions Custom subscription where .for() resource has a CustomType return type 1`] = `
"type CreateCustomTypePostReturnType @aws_api_key
{
title: String!
}

type Mutation {
"type Mutation {
createCustomTypePost: CreateCustomTypePostReturnType @function(name: "createCustomTypePost") @auth(rules: [{allow: public, provider: apiKey}])
}

Expand Down Expand Up @@ -340,23 +315,13 @@ exports[`CustomOperation transform dynamo schema handlers a.handler.custom a.han
title: String
}

type GetPostDetailsReturnType @aws_api_key
{

}

type Query {
getPostDetails: GetPostDetailsReturnType @aws_api_key
}"
`;

exports[`CustomOperation transform dynamo schema handlers a.handler.custom a.handler.custom with auth works 1`] = `
"type GetPostDetailsReturnType @aws_cognito_user_pools(cognito_groups: ["groupA", "groupB"])
{

}

type Query {
"type Query {
getPostDetails: GetPostDetailsReturnType @aws_cognito_user_pools(cognito_groups: ["groupA", "groupB"])
}"
`;
Expand All @@ -373,12 +338,7 @@ type Query {
`;

exports[`CustomOperation transform dynamo schema handlers a.handler.function defineFunction 1`] = `
"type GetPostDetailsReturnType @aws_cognito_user_pools
{

}

type Query {
"type Query {
getPostDetails: GetPostDetailsReturnType @function(name: "FnGetPostDetails") @auth(rules: [{allow: private}])
}"
`;
Expand All @@ -395,12 +355,7 @@ type Query {
`;

exports[`CustomOperation transform dynamo schema handlers a.handler.function defineFunction async - sync 1`] = `
"type GetPostDetailsReturnType @aws_cognito_user_pools
{

}

type Query {
"type Query {
getPostDetails: GetPostDetailsReturnType @function(name: "FnGetPostDetails", invocationType: Event) @function(name: "FnGetPostDetails2") @auth(rules: [{allow: private}])
}"
`;
Expand Down Expand Up @@ -428,34 +383,19 @@ type Query {
`;

exports[`CustomOperation transform dynamo schema handlers a.handler.function pipeline / mix 1`] = `
"type GetPostDetailsReturnType @aws_cognito_user_pools
{

}

type Query {
"type Query {
getPostDetails: GetPostDetailsReturnType @function(name: "myFunc") @function(name: "FnGetPostDetails2") @function(name: "FnGetPostDetails3") @function(name: "myFunc2") @auth(rules: [{allow: private}])
}"
`;

exports[`CustomOperation transform dynamo schema handlers a.handler.function string 1`] = `
"type GetPostDetailsReturnType @aws_cognito_user_pools
{

}

type Query {
"type Query {
getPostDetails: GetPostDetailsReturnType @function(name: "myFunc") @auth(rules: [{allow: private}])
}"
`;

exports[`CustomOperation transform dynamo schema handlers a.handler.inlineSql escapes quotes 1`] = `
"type GetPostDetailsReturnType @aws_cognito_user_pools
{

}

type Query {
"type Query {
getPostDetails: GetPostDetailsReturnType @sql(statement: "SELECT * from TESTTABLE status = \\"active\\";") @auth(rules: [{allow: private}])
}"
`;
Expand All @@ -472,24 +412,14 @@ exports[`CustomOperation transform dynamo schema handlers a.handler.inlineSql wo
"functionSlots": [],
"jsFunctions": [],
"lambdaFunctions": {},
"schema": "type GetPostDetailsReturnType @aws_cognito_user_pools
{

}

type Query {
"schema": "type Query {
getPostDetails: GetPostDetailsReturnType @sql(statement: "SELECT * from TESTTABLE;") @auth(rules: [{allow: private}])
}",
}
`;

exports[`CustomOperation transform dynamo schema handlers a.handler.sqlReference works 1`] = `
"type GetPostDetailsReturnType @aws_cognito_user_pools
{

}

type Query {
"type Query {
getPostDetails: GetPostDetailsReturnType @sql(reference: "./testQueryName") @auth(rules: [{allow: private}])
}"
`;
Expand Down
Loading