/**
 * @file Ce fichier charge tous les tests sans authentification
 * @author ofacklam
 */

import fs from 'fs';
import path from 'path';
import { TestCollection, TestSet } from "../testData";
import { AuthorizationModel } from "../../../src/graphql/models/authorization";
import { UserModel } from "../../../src/graphql/models/userModel";
import { GroupModel } from "../../../src/graphql/models/groupModel";
import { MessageModel } from "../../../src/graphql/models/messageModel";
import { RequestModel } from "../../../src/graphql/models/requestModel";

let uid = AuthorizationModel.PUBLICUSER;

const tests : TestCollection = {
    description: "Public user",
    context : async ({ req }) => {
        return {
            request: req,
            user: { uid: uid },
            models: {
                auth: await AuthorizationModel.create(uid),
                user: new UserModel(uid),
                group: new GroupModel(uid),
                message: new MessageModel(uid),
                request: new RequestModel(uid)
            }
        };
    },
    tests : []
}

let dir = path.resolve(__dirname, './unauthenticated')
fs.readdirSync(dir).forEach(file => {
    const testSet : TestSet = require(path.resolve(dir, file)).tests;
    tests.tests.push(testSet);
});

export {tests};