Skip to content
Snippets Groups Projects
Todos.test.js 1.14 KiB
Newer Older
const mongoose = require( 'mongoose' );
RouvenReuter91's avatar
RouvenReuter91 committed
const dbClientInstance_ = require( '../db/mongo.js' );
RouvenReuter91's avatar
RouvenReuter91 committed
const { model: Todos } = require( './Todos.js' );


describe( 'Model: Todos', ()=>{
RouvenReuter91's avatar
RouvenReuter91 committed
    beforeAll( async ()=>{
        try{
            await dbClientInstance_;
        }catch( err ){
            console.error( new Error( `Cannot connect to database: ${ process.env.MONGODB_URL }` ) );
            process.exit( 1 );
        }
    });


    test( 'creating a todo for a non-existing user', async ()=>{
RouvenReuter91's avatar
RouvenReuter91 committed

        const todoData = {
            title: 'Homework',
            description: 'Devops project 2020',
            user: mongoose.Types.ObjectId()
        };

        const todoDoc = await Todos( todoData );
        await todoDoc.save();
RouvenReuter91's avatar
RouvenReuter91 committed
        const todoRecord = await Todos.findOne({ user: todoData.user });
RouvenReuter91's avatar
RouvenReuter91 committed
        const { description, ...todoInfo } = todoData;

        expect( todoRecord ).toEqual( expect.objectContaining( todoInfo ) );
    });


    afterAll( async ()=>{
        const dbClient = await dbClientInstance_;
        const { connection } = dbClient;
        await connection.dropDatabase();
        await dbClient.disconnect();
    });