"use strict";
/*
 * @adonisjs/core
 *
 * (c) Harminder Virk <virk@adonisjs.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
Object.defineProperty(exports, "__esModule", { value: true });
exports.TestUtils = void 0;
const macroable_1 = require("macroable");
const utils_1 = require("../utils");
const HttpServer_1 = require("./HttpServer");
/**
 * Test utils module is meant to be extended to add custom
 * utilities required for testing AdonisJS applications.
 */
class TestUtils extends macroable_1.Macroable {
    constructor(application) {
        super();
        this.application = application;
    }
    /**
     * Utilities for ace
     */
    ace() {
        return {
            loadCommands: () => {
                return (0, utils_1.loadAceCommands)(this.application, this.application.container.resolveBinding('Adonis/Core/Ace'));
            },
        };
    }
    /**
     * Utilities for http server
     */
    httpServer() {
        return new HttpServer_1.TestHttpServer(this.application);
    }
}
exports.TestUtils = TestUtils;
TestUtils.macros = {};
TestUtils.getters = {};
