$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("Lead\\Jit\\Interceptor"); }); }); describe("::composer()", function () { it("returns the composer autoloader", function () { $composer = Interceptor::composer()[0]; expect($composer)->toBeAnInstanceOf("Composer\\Autoload\\ClassLoader"); });