Return fake filesystem
This commit is contained in:
parent
d09a91dfaa
commit
ca5d5e157b
|
@ -14,6 +14,10 @@ class FilesystemConfig
|
||||||
public string $path;
|
public string $path;
|
||||||
public StorageType $type;
|
public StorageType $type;
|
||||||
|
|
||||||
|
public function __construct(public string $identifier)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public function host(string $host): self
|
public function host(string $host): self
|
||||||
{
|
{
|
||||||
$this->host = $host;
|
$this->host = $host;
|
||||||
|
@ -49,7 +53,7 @@ class FilesystemConfig
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function swap(): void
|
public function swap()
|
||||||
{
|
{
|
||||||
if (!app()->has('original-filesystem')) {
|
if (!app()->has('original-filesystem')) {
|
||||||
app()->singleton('original-filesystem', fn () => app(FilesystemManager::class));
|
app()->singleton('original-filesystem', fn () => app(FilesystemManager::class));
|
||||||
|
@ -62,8 +66,10 @@ class FilesystemConfig
|
||||||
if ($this->type === StorageType::FTP) {
|
if ($this->type === StorageType::FTP) {
|
||||||
$mock->shouldReceive('createFtpDriver')->withArgs(fn ($config) => $this->host === $config['host'] && $this->username === $config['username'] && $this->password === $config['password'] && $this->path === $config['root'])
|
$mock->shouldReceive('createFtpDriver')->withArgs(fn ($config) => $this->host === $config['host'] && $this->username === $config['username'] && $this->password === $config['password'] && $this->path === $config['root'])
|
||||||
->andReturnUsing(function () {
|
->andReturnUsing(function () {
|
||||||
return app('original-filesystem')->createLocalDriver(['root' => __DIR__ . '/fakes']);
|
return app('original-filesystem')->createLocalDriver(['root' => __DIR__ . '/fakes/' . $this->identifier]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return app('original-filesystem')->createLocalDriver(['root' => __DIR__ . '/fakes/' . $this->identifier]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,18 +5,14 @@ namespace Zoomyboy\FilesystemTests;
|
||||||
trait TestsFilesystems
|
trait TestsFilesystems
|
||||||
{
|
{
|
||||||
|
|
||||||
public $mockedSystems = [];
|
|
||||||
public bool $mocked = false;
|
public bool $mocked = false;
|
||||||
|
|
||||||
public function mockFilesystem(string $identifier): FilesystemConfig
|
public function mockFilesystem(string $identifier): FilesystemConfig
|
||||||
{
|
{
|
||||||
$this->beforeApplicationDestroyed(function () {
|
$this->beforeApplicationDestroyed(function () {
|
||||||
|
@exec('rm -R ' . __DIR__ . '/fakes/* > /dev/null 2>&1');
|
||||||
});
|
});
|
||||||
return $this->mockedSystems[$identifier] = data_get($this->mockedSystems, $identifier, new FilesystemConfig($identifier));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function clearFilesystems(): void
|
return new FilesystemConfig($identifier);
|
||||||
{
|
|
||||||
exec('rm -R ' . __DIR__ . '/fakes/*');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue