const models = require('vn-loopback/server/server').models;

describe('loopback model MailAliasAccount', () => {
    it('should add a mail Alias', async() => {
        const tx = await models.MailAliasAccount.beginTransaction({});
        let error;

        try {
            const options = {transaction: tx, accessToken: {userId: 9}};
            await models.MailAliasAccount.create({mailAlias: 2, account: 5}, options);

            await tx.rollback();
        } catch (e) {
            await tx.rollback();
            error = e;
        }

        expect(error).toBeUndefined();
    });

    it('should add a mail Alias of an inherit role', async() => {
        const tx = await models.MailAliasAccount.beginTransaction({});
        let error;

        try {
            const options = {transaction: tx, accessToken: {userId: 9}};
            await models.MailAliasAccount.create({mailAlias: 3, account: 5}, options);

            await tx.rollback();
        } catch (e) {
            await tx.rollback();
            error = e;
        }

        expect(error).toBeUndefined();
    });

    it('should delete a mail Alias', async() => {
        const tx = await models.MailAliasAccount.beginTransaction({});
        let error;

        try {
            const options = {transaction: tx, accessToken: {userId: 1}};
            const mailAclId = 2;
            await models.MailAliasAccount.destroyAll({id: mailAclId}, options);

            await tx.rollback();
        } catch (e) {
            await tx.rollback();
            error = e;
        }

        expect(error).toBeUndefined();
    });
});