diff --git a/tests/format/typescript/method-chain/object/__snapshots__/format.test.js.snap b/tests/format/typescript/method-chain/object/__snapshots__/format.test.js.snap index b29d5f001..9ac826da5 100644 --- a/tests/format/typescript/method-chain/object/__snapshots__/format.test.js.snap +++ b/tests/format/typescript/method-chain/object/__snapshots__/format.test.js.snap @@ -46,3 +46,136 @@ model = types ================================================================================ `; + +exports[`issue-19052.ts - {"objectWrap":"collapse"} format 1`] = ` +====================================options===================================== +objectWrap: "collapse" +parsers: ["typescript", "flow"] + printWidth: 80 (default) | +=====================================input====================================== +export class OpinionsRepositoryService { + groupBy( + params: FindAllOpinionsParams, + groupByField: TGroupBy, + includeFields = ["_id"] as Fields, + ) { + return this.opinionModel + .aggregate>([ + { + $match: this.mongodbUtilities.clean(params), + }, + { + $group: { + _id: \`$\${groupByField}\`, + opinions: { + $push: includeFields.reduce( + (acc, field) => ({ ...acc, [field]: \`$\${field}\` }), + {}, + ), + }, + }, + }, + { $set: { [groupByField]: "$_id" } }, + { $unset: "_id" }, + ]) + .exec(); + } +} + +=====================================output===================================== +export class OpinionsRepositoryService { + groupBy( + params: FindAllOpinionsParams, + groupByField: TGroupBy, + includeFields = ["_id"] as Fields, + ) { + return this.opinionModel + .aggregate>([ + { $match: this.mongodbUtilities.clean(params) }, + { + $group: { + _id: \`$\${groupByField}\`, + opinions: { + $push: includeFields.reduce( + (acc, field) => ({ ...acc, [field]: \`$\${field}\` }), + {}, + ), + }, + }, + }, + { $set: { [groupByField]: "$_id" } }, + { $unset: "_id" }, + ]) + .exec(); + } +} + +================================================================================ +`; + +exports[`issue-19052.ts format 1`] = ` +====================================options===================================== +parsers: ["typescript", "flow"] + printWidth: 80 (default) | +=====================================input====================================== +export class OpinionsRepositoryService { + groupBy( + params: FindAllOpinionsParams, + groupByField: TGroupBy, + includeFields = ["_id"] as Fields, + ) { + return this.opinionModel + .aggregate>([ + { + $match: this.mongodbUtilities.clean(params), + }, + { + $group: { + _id: \`$\${groupByField}\`, + opinions: { + $push: includeFields.reduce( + (acc, field) => ({ ...acc, [field]: \`$\${field}\` }), + {}, + ), + }, + }, + }, + { $set: { [groupByField]: "$_id" } }, + { $unset: "_id" }, + ]) + .exec(); + } +} + +=====================================output===================================== +export class OpinionsRepositoryService { + groupBy( + params: FindAllOpinionsParams, + groupByField: TGroupBy, + includeFields = ["_id"] as Fields, + ) { + return this.opinionModel + .aggregate>([ + { + $match: this.mongodbUtilities.clean(params), + }, + { + $group: { + _id: \`$\${groupByField}\`, + opinions: { + $push: includeFields.reduce( + (acc, field) => ({ ...acc, [field]: \`$\${field}\` }), + {}, + ), + }, + }, + }, + { $set: { [groupByField]: "$_id" } }, + { $unset: "_id" }, + ]) + .exec(); + } +} + +================================================================================ +`; diff --git a/tests/format/typescript/method-chain/object/issue-19052.ts b/tests/format/typescript/method-chain/object/issue-19052.ts new file mode 100644 index 000000000..2aefc9361 --- /dev/null +++ b/tests/format/typescript/method-chain/object/issue-19052.ts @@ -0,0 +1,28 @@ +export class OpinionsRepositoryService { + groupBy( + params: FindAllOpinionsParams, + groupByField: TGroupBy, + includeFields = ["_id"] as Fields, + ) { + return this.opinionModel + .aggregate>([ + { + $match: this.mongodbUtilities.clean(params), + }, + { + $group: { + _id: `$${groupByField}`, + opinions: { + $push: includeFields.reduce( + (acc, field) => ({ ...acc, [field]: `$${field}` }), + {}, + ), + }, + }, + }, + { $set: { [groupByField]: "$_id" } }, + { $unset: "_id" }, + ]) + .exec(); + } +}