Files
logisticsAPI/tests/Feature/DocumentationTest.php
Marvin 4b2f172e2a Enhance documentation and improve API configuration
- Added VPN connection requirement to README.md for local access to the Logistics API.
- Updated documentation_api_logistics.md to clarify usage environments and provide detailed connection instructions.
- Modified update-documentation.mdc to include guidelines on handling sensitive information in examples.
- Implemented automatic heading ID generation in Documentation.php for better navigation in the documentation.
- Updated logistics.php configuration to include default values for base URL, API key, and folder.
- Added support contact information in the dashboard view for API-related issues.
2026-02-20 14:56:38 +01:00

86 lines
2.6 KiB
PHP

<?php
use App\Filament\Pages\Documentation;
use App\Models\User;
use Livewire\Livewire;
beforeEach(function () {
$this->actingAs(User::factory()->create());
});
it('renders the documentation page', function () {
Livewire::test(Documentation::class)
->assertSuccessful()
->assertSee('Documentation API Logistics');
});
it('converts markdown to HTML content', function () {
$component = Livewire::test(Documentation::class);
expect($component->get('htmlContent'))
->toBeString()
->not->toBeEmpty()
->toContain('<h1 id="')
->toContain('<table>');
});
it('generates heading IDs matching the table of contents anchors', function () {
$html = Livewire::test(Documentation::class)->get('htmlContent');
$anchors = [
'1-pré-requis',
'2-environnements-dutilisation',
'3-comment-effectuer-des-requêtes',
'4-structure-de-réponse',
'5-tables-et-colonnes-disponibles',
'6-récupération-de-données',
'7-envoi-de-données',
'8-endpoints-non-fonctionnels',
'9-relations-entre-entités',
'10-remarques-et-points-dattention',
'11-ressources-externes',
];
foreach ($anchors as $anchor) {
expect($html)->toContain("id=\"{$anchor}\"");
}
});
it('displays the main documentation sections', function () {
Livewire::test(Documentation::class)
->assertSee('Pré-requis')
->assertSee('Comment effectuer des requêtes')
->assertSee('Structure de réponse')
->assertSee('Tables et colonnes disponibles')
->assertSee('Récupération de données')
->assertSee('Envoi de données');
});
it('downloads the documentation as PDF', function () {
$response = $this->get(route('documentation.download-pdf'));
$response->assertSuccessful()
->assertHeader('content-type', 'application/pdf');
});
it('documents all service endpoints', function () {
Livewire::test(Documentation::class)
->assertSee('tables_list')
->assertSee('column_list')
->assertSee('art_list')
->assertSee('art_getstk')
->assertSee('jnl_list')
->assertSee('document_list')
->assertSee('document_detail')
->assertSee('document_add')
->assertSee('document_mod')
->assertSee('Document_GetStatusList')
->assertSee('Document_GetUnitPriceAndVat')
->assertSee('Document_GetDueDate')
->assertSee('Document_GetAttachListThumbnail')
->assertSee('third_list')
->assertSee('third_GetArtHistory')
->assertSee('getserialnumber')
->assertSee('codes_list');
});