v7.0.0-beta.2 release

This commit is contained in:
HeuJung
2026-04-20 20:37:49 +09:00
parent 6595fd0eb5
commit fa8eba7a0d
1165 changed files with 107118 additions and 762127 deletions
@@ -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);
}
}