"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Expect = void 0;
const assert_1 = require("./assert");
class Expect {
    expects = [];
    expect(expected) {
        const assertedObject = (0, assert_1.assert)(expected);
        const returnObject = {
            not: {},
        };
        Object.keys(assertedObject).forEach((key) => {
            returnObject[key] = (...result) => {
                // @ts-ignore
                this.expects.push(assertedObject[key](...result));
            };
        });
        Object.keys(assertedObject).forEach((key) => {
            returnObject.not[key] = (...result) => {
                // @ts-ignore
                this.expects.push(!assertedObject[key](...result));
            };
        });
        return returnObject;
    }
    clean() {
        this.expects = [];
    }
    isAllPassed() {
        return this.expects.every(e => e);
    }
}
exports.Expect = Expect;
