0

我正在尝试使 ts-jest 工作,但由于与方法功能不相关而出现错误。

我有一个ProductService带有演示方法的类``

import { 
    ProductModel, 
    ProductPriceModel, 
    ProductTypes, 
    ProductVariantModel,
} from "../models/Product"

class ProductService {

    async testJest(input: string) {
        return input.split('').reverse().join('')
    }

}

export const productService = new ProductService();

我的测试文件


import { productService } from '../../src/services/product.service'

describe('Product service', () => {

    describe('testMethod', () => {

        describe('type field', () => {

            it('case 1', async () => {
                expect(await productService.testJest('Hello world!')).toBe('!dlrow olleH')
            })
    
        })

    })


})

和我得到的奇怪错误 我得到的错误

那是我的架构,但当我运行产品时它实际上工作正常

import { Schema, Document, model, Types } from "mongoose"
import { plugin as autocomplete } from 'mongoose-auto-increment'

const ProductSchema: Schema<Document<IProduct>> = new Schema({
    article: { type: String },
    name: { type: String },
    category: { type: Types.ObjectId, ref: 'ProductCategory' },
    group: { type: Types.ObjectId, ref: 'ProductGroup' },
    type: { type: ProductTypes, required: true },
    variants: [{ type: Types.ObjectId, ref: 'ProductVariant' }],
    description: { type: String },
    grind: { type: Boolean, default: false },
    productDetails: { type: Object },
    productImage: { type: String },
}, { collection: "products", timestamps: true })

ProductSchema.plugin(autocomplete, {
    model: 'Product',
    field: 'article',
    startAt: 10000,
})

export const ProductModel = model('Product', ProductSchema)

我已经尝试过初始化数据库连接(我认为这不应该是一个好习惯),但它没有帮助。

我希望您对如何使用我的设置进行测试有任何想法 - TypeScript + MongoDB (Mongoose) with plugins

更新

更新了手动数据库启动

当我尝试通过手动数据库启动运行它时,我遇到了同样的错误。但只有这一次我用“--detectOpenHandles”标志运行它

4

0 回答 0