mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-09-01 21:00:58 +00:00
* refactor: stabilize model identities for domain migration * refactor: extract module platform context * refactor: assign models to domain contexts * refactor: extract ai platform context * refactor: extract storage platform context * refactor: extract mail platform context * refactor: extract pdf platform context * refactor: extract operations platform context * refactor: move installation into operations platform * refactor: extract money domain context * refactor: extract taxation domain context * refactor: extract catalog domain context * refactor: extract metadata domain context * refactor: extract reporting domain context * refactor: extract purchases domain context * refactor: extract receivables domain context * refactor: extract accounts domain context * refactor: complete reporting statement boundary * refactor: extract contacts domain context * refactor: extract sales domain context * refactor: remove legacy application layers * fix: migrate legacy bouncer role identities
67 lines
1.7 KiB
PHP
67 lines
1.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @return list<string>
|
|
*/
|
|
function phpFilesUnder(string $directory): array
|
|
{
|
|
if (! is_dir($directory)) {
|
|
return [];
|
|
}
|
|
|
|
$files = [];
|
|
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
|
|
|
|
foreach ($iterator as $file) {
|
|
if ($file->isFile() && $file->getExtension() === 'php') {
|
|
$files[] = $file->getPathname();
|
|
}
|
|
}
|
|
|
|
return $files;
|
|
}
|
|
|
|
test('domain code does not depend on legacy service or controller layers', function () {
|
|
$files = phpFilesUnder(app_path('Domains'));
|
|
|
|
expect($files)->toBeArray();
|
|
|
|
foreach ($files as $file) {
|
|
$source = file_get_contents($file);
|
|
|
|
expect($source)->not->toContain('App\\Http\\Controllers')
|
|
->not->toContain('App\\Services');
|
|
}
|
|
});
|
|
|
|
test('platform code does not depend on legacy controllers', function () {
|
|
foreach (phpFilesUnder(app_path('Platform')) as $file) {
|
|
expect(file_get_contents($file))->not->toContain('App\\Http\\Controllers');
|
|
}
|
|
});
|
|
|
|
test('legacy application layer directories contain no php classes', function () {
|
|
$legacyDirectories = [
|
|
'Console/Commands',
|
|
'Http/Controllers',
|
|
'Http/Requests',
|
|
'Http/Resources',
|
|
'Jobs',
|
|
'Mail',
|
|
'Models',
|
|
'Policies',
|
|
'Services',
|
|
'Traits',
|
|
];
|
|
|
|
foreach ($legacyDirectories as $directory) {
|
|
expect(phpFilesUnder(app_path($directory)))->toBe([]);
|
|
}
|
|
});
|
|
|
|
test('support remains independent of domains', function () {
|
|
foreach (phpFilesUnder(app_path('Support')) as $file) {
|
|
expect(file_get_contents($file))->not->toContain('App\\Domains');
|
|
}
|
|
});
|