diff --git a/benchmark/list-async-nested-benchmark.js b/benchmark/list-async-nested-benchmark.js new file mode 100644 index 0000000000..70cc5dbe3a --- /dev/null +++ b/benchmark/list-async-nested-benchmark.js @@ -0,0 +1,34 @@ +import { execute } from 'graphql/execution/execute.js'; +import { parse } from 'graphql/language/parser.js'; +import { buildSchema } from 'graphql/utilities/buildASTSchema.js'; + +const schema = buildSchema(` + type Query { + listField: [Object] + } + + type Object { + field: String + } +`); +const document = parse('{ listField { field } }'); + +function listField() { + const results = []; + for (let index = 0; index < 1; index++) { + results.push(Promise.resolve({ field: Promise.resolve(index) })); + } + return results; +} + +export const benchmark = { + name: 'Execute Asynchronous List Field with Nested Asynchronous Fields', + count: 10, + async measure() { + await execute({ + schema, + document, + rootValue: { listField }, + }); + }, +};