feat(compat): declare core independence with core:"none" (INDEPENDENT status, block inheritance, no warning)
This commit is contained in:
@@ -146,3 +146,36 @@ Harness::it('la descripcion del componente prevalece y hereda del paquete', func
|
||||
'components' => ['c' => ['files' => ['c.php'], 'description' => 7]],
|
||||
]), 'description no-string es inválida');
|
||||
});
|
||||
|
||||
Harness::it('core admite "none" como bloque con herencia completa', function () {
|
||||
$m = Manifest::fromArray([
|
||||
'name' => 'pkg',
|
||||
'version' => '1.0.0',
|
||||
'core' => 'none',
|
||||
'components' => [
|
||||
'a' => ['files' => ['src/A.php']],
|
||||
'b' => ['files' => ['src/B.php'], 'core' => ['requires' => '>=0.2', 'tested' => '0.2']],
|
||||
],
|
||||
]);
|
||||
|
||||
ok($m->coreIndependent('a'), 'a hereda la independencia del paquete');
|
||||
ok(!$m->coreIndependent('b'), 'b sobreescribe el bloque con su rango');
|
||||
eq('>=0.2', $m->coreRequirement('b'));
|
||||
eq('0.2', $m->testedCore('b'));
|
||||
eq(null, $m->coreRequirement('a'), 'independiente no arrastra rangos');
|
||||
|
||||
$m2 = Manifest::fromArray([
|
||||
'name' => 'pkg2',
|
||||
'version' => '1.0.0',
|
||||
'core' => ['requires' => '>=0.1'],
|
||||
'components' => ['c' => ['files' => ['src/C.php'], 'core' => 'none']],
|
||||
]);
|
||||
ok($m2->coreIndependent('c'), 'componente declara none sobre rango de paquete');
|
||||
eq(null, $m2->coreRequirement('c'), 'el rango del paquete no se filtra al bloque declarado none');
|
||||
eq('>=0.1', $m2->coreRequirement());
|
||||
|
||||
throws(fn () => Manifest::fromArray([
|
||||
'name' => 'bad', 'version' => '1.0.0', 'core' => 'otro',
|
||||
'components' => ['x' => ['files' => ['x.php']]],
|
||||
]), 'core string distinto de none es inválido');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user