v7.0.0-beta.2 release
This commit is contained in:
@@ -45,7 +45,7 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
|
||||
$module = \Mockery::mock(\App\Contracts\Extension\ModuleInterface::class);
|
||||
$module->shouldReceive('getDependencies')
|
||||
->andReturn(['sirsoft-ecommerce' => '>=1.0.0']);
|
||||
->andReturn(['modules' => ['sirsoft-ecommerce' => '>=1.0.0']]);
|
||||
|
||||
$reflection = new \ReflectionMethod($this->moduleManager, 'checkDependencies');
|
||||
|
||||
@@ -68,7 +68,7 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
|
||||
$module = \Mockery::mock(\App\Contracts\Extension\ModuleInterface::class);
|
||||
$module->shouldReceive('getDependencies')
|
||||
->andReturn(['sirsoft-ecommerce' => '>=1.0.0']);
|
||||
->andReturn(['modules' => ['sirsoft-ecommerce' => '>=1.0.0']]);
|
||||
|
||||
$reflection = new \ReflectionMethod($this->moduleManager, 'checkDependencies');
|
||||
|
||||
@@ -92,7 +92,7 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
|
||||
$module = \Mockery::mock(\App\Contracts\Extension\ModuleInterface::class);
|
||||
$module->shouldReceive('getDependencies')
|
||||
->andReturn(['sirsoft-payment' => '>=1.0.0']);
|
||||
->andReturn(['plugins' => ['sirsoft-payment' => '>=1.0.0']]);
|
||||
|
||||
$reflection = new \ReflectionMethod($this->moduleManager, 'checkDependencies');
|
||||
|
||||
@@ -106,7 +106,7 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
{
|
||||
$module = \Mockery::mock(\App\Contracts\Extension\ModuleInterface::class);
|
||||
$module->shouldReceive('getDependencies')
|
||||
->andReturn(['nonexistent-extension' => '>=1.0.0']);
|
||||
->andReturn(['modules' => ['nonexistent-extension' => '>=1.0.0']]);
|
||||
|
||||
$reflection = new \ReflectionMethod($this->moduleManager, 'checkDependencies');
|
||||
|
||||
@@ -115,7 +115,11 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* enrichDependencies가 모듈 의존성의 identifier를 올바르게 반환하는지 테스트합니다.
|
||||
* enrichDependencies가 중첩 모듈 의존성의 identifier를 올바르게 반환하는지 테스트합니다.
|
||||
*
|
||||
* manifest(module.json/plugin.json)의 dependencies 필드는 중첩 구조
|
||||
* ['modules' => [...], 'plugins' => [...]] 로 저장되므로 enrichDependencies는
|
||||
* 해당 구조를 그대로 파싱합니다 (커밋 72156e6f0, 2026-02-23).
|
||||
*/
|
||||
public function test_enrich_dependencies_returns_module_identifier_not_version(): void
|
||||
{
|
||||
@@ -130,7 +134,9 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
|
||||
$reflection = new \ReflectionMethod($this->moduleManager, 'enrichDependencies');
|
||||
|
||||
$dependencies = ['sirsoft-ecommerce' => '>=1.0.0'];
|
||||
$dependencies = [
|
||||
'modules' => ['sirsoft-ecommerce' => '>=1.0.0'],
|
||||
];
|
||||
$result = $reflection->invoke($this->moduleManager, $dependencies);
|
||||
|
||||
$this->assertCount(1, $result);
|
||||
@@ -140,7 +146,7 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* enrichDependencies가 플러그인 의존성도 올바르게 처리하는지 테스트합니다.
|
||||
* enrichDependencies가 중첩 플러그인 의존성도 올바르게 처리하는지 테스트합니다.
|
||||
*/
|
||||
public function test_enrich_dependencies_returns_plugin_identifier(): void
|
||||
{
|
||||
@@ -155,7 +161,9 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
|
||||
$reflection = new \ReflectionMethod($this->moduleManager, 'enrichDependencies');
|
||||
|
||||
$dependencies = ['sirsoft-payment' => '>=1.0.0'];
|
||||
$dependencies = [
|
||||
'plugins' => ['sirsoft-payment' => '>=1.0.0'],
|
||||
];
|
||||
$result = $reflection->invoke($this->moduleManager, $dependencies);
|
||||
|
||||
$this->assertCount(1, $result);
|
||||
@@ -164,17 +172,38 @@ class ModuleManagerDependencyTest extends TestCase
|
||||
}
|
||||
|
||||
/**
|
||||
* enrichDependencies가 미등록 의존성을 unknown 타입으로 반환하는지 테스트합니다.
|
||||
* enrichDependencies가 미등록 의존성의 identifier를 그대로 반환하는지 테스트합니다.
|
||||
*
|
||||
* DB에 없는 의존성은 name 필드에 identifier를 사용하지만 type은 여전히
|
||||
* 선언된 구조(module/plugin)를 따릅니다.
|
||||
*/
|
||||
public function test_enrich_dependencies_returns_unknown_for_missing(): void
|
||||
public function test_enrich_dependencies_returns_identifier_for_missing(): void
|
||||
{
|
||||
$reflection = new \ReflectionMethod($this->moduleManager, 'enrichDependencies');
|
||||
|
||||
$dependencies = ['nonexistent-extension' => '>=1.0.0'];
|
||||
$dependencies = [
|
||||
'modules' => ['nonexistent-extension' => '>=1.0.0'],
|
||||
];
|
||||
$result = $reflection->invoke($this->moduleManager, $dependencies);
|
||||
|
||||
$this->assertCount(1, $result);
|
||||
$this->assertEquals('nonexistent-extension', $result[0]['identifier']);
|
||||
$this->assertEquals('unknown', $result[0]['type']);
|
||||
$this->assertEquals('nonexistent-extension', $result[0]['name']);
|
||||
$this->assertEquals('module', $result[0]['type']);
|
||||
}
|
||||
|
||||
/**
|
||||
* enrichDependencies가 중첩 구조가 아닌 경우 빈 배열을 반환하는지 테스트합니다.
|
||||
*
|
||||
* manifest 형식이 아닌 평면 배열 등은 파싱되지 않아야 합니다.
|
||||
*/
|
||||
public function test_enrich_dependencies_returns_empty_for_non_nested_structure(): void
|
||||
{
|
||||
$reflection = new \ReflectionMethod($this->moduleManager, 'enrichDependencies');
|
||||
|
||||
$dependencies = ['sirsoft-ecommerce' => '>=1.0.0'];
|
||||
$result = $reflection->invoke($this->moduleManager, $dependencies);
|
||||
|
||||
$this->assertCount(0, $result);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user