У меня небольшие проблемы с интеграционным тестом для моего приложения mongoose.Проблема в том, что мои уникальные настройки постоянно игнорируются.Схема выглядит более или менее так (поэтому здесь нет ничего необычного)
const RealmSchema:Schema = new mongoose.Schema({
Title : {
type : String,
required : true,
unique : true
},
SchemaVersion : {
type : String,
default : SchemaVersion,
enum: [ SchemaVersion ]
}
}, {
timestamps : {
createdAt : "Created",
updatedAt : "Updated"
}
});
Похоже, что в основном все правила, установленные в схеме, игнорируются.Я могу передать число / логическое, где требуется строка.Единственное, что работает, это то, что поля, которые не были объявлены в схеме, не будут сохранены в БД
Первая вероятная причина:
У меня такое чувство, что это может иметь отношение к тому, как я тестирую.У меня есть несколько интеграционных тестов.После каждого из них моя база данных удаляется (поэтому у меня одно и то же условие для каждого теста и предварительное условие для базы данных в этом тесте).
Возможно, причина в том, что мои индексы сбрасываются с базой данных и не перезапускаютсякогда следующий текст снова создаст базу данных и коллекцию?И если это так, как я могу убедиться, что после каждого теста я получаю пустую базу данных, которая все еще учитывает все мои настройки схемы?
Вторая вероятная причина:
Я использую TypeScript в этом проекте.Возможно, что-то не так в определении схемы и модели.Это то, что я делаю.
1.Создайте схему (код сверху)
2.Создайте интерфейс для модели (где IRealmM расширяет интерфейс для использования в mongoose)
import { SpecificAttributeSelect } from "../classes/class.specificAttribute.Select";
import { SpecificAttributeText } from "../classes/class.specificAttribute.Text";
import { Document } from "mongoose";
interface IRealm{
Title : String;
Attributes : (SpecificAttributeSelect | SpecificAttributeText)[];
}
interface IRealmM extends IRealm, Document {
}
export { IRealm, IRealmM }
3.Создать модель
import { RealmSchema } from '../schemas/schema.Realm';
import { Model } from 'mongoose';
import { IRealmM } from '../interfaces/interface.realm';
// Apply Authentication Plugin and create Model
const RealmModel:Model<IRealmM> = mongoose.model('realm', RealmSchema);
// Export the Model
export { RealmModel }