appMock = m::mock(Application::class); $this->config = m::mock(Repository::class); } /** * Test that a production environment does not try to disable debug bar. */ public function testProductionEnvironment() { $this->appMock->shouldReceive('environment')->withNoArgs()->once()->andReturn('production'); $this->config->shouldReceive('set')->with('session.driver', 'array')->once()->andReturnNull(); $this->getMiddleware()->handle($this->request, $this->getClosureAssertions()); } /** * Test that a local environment does disable debug bar. */ public function testLocalEnvironment() { $this->appMock->shouldReceive('environment')->withNoArgs()->once()->andReturn('local'); $this->appMock->shouldReceive('make')->with(LaravelDebugbar::class)->once()->andReturnSelf(); $this->appMock->shouldReceive('disable')->withNoArgs()->once()->andReturnNull(); $this->config->shouldReceive('set')->with('session.driver', 'array')->once()->andReturnNull(); $this->getMiddleware()->handle($this->request, $this->getClosureAssertions()); } /** * Return an instance of the middleware with mocked dependencies for testing. * * @return \Pterodactyl\Http\Middleware\API\SetSessionDriver */ private function getMiddleware(): SetSessionDriver { return new SetSessionDriver($this->appMock, $this->config); } }