$actual = Interceptor::instance();
expect($success)->toBe(true);
expect($actual)->toBe(null);
});
it("returns `false` if there's no patched autoloader", function () {
Interceptor::patch(['cachePath' => $this->cachePath]);
Interceptor::unpatch();
$success = Interceptor::unpatch();
expect($success)->toBe(false);
});
});
describe("::load()", function () {
it("auto unpatch when loading an interceptor autoloader", function () {
$interceptor = Interceptor::patch(['cachePath' => $this->cachePath]);
$new = new Interceptor(['originalLoader' => $interceptor->originalLoader(), 'cachePath' => $this->cachePath]);
Interceptor::load($new);
expect(Interceptor::instance())->toBe($new);
expect(Interceptor::instance())->not->toBe($interceptor);
});
});
describe("::instance()", function () {
it("returns the interceptor autoloader", function () {
$interceptor = Interceptor::patch(['cachePath' => $this->cachePath]);
expect($interceptor)->toBeAnInstanceOf("Kahlan\\Jit\\Interceptor");
});
});
describe("::composer()", function () {
it("returns the composer autoloader", function () {
$composer = Interceptor::composer()[0];
expect($composer)->toBeAnInstanceOf("Composer\\Autoload\\ClassLoader");
});