mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-03-01 04:49:36 +00:00
Fixed tests
This commit is contained in:
parent
b1b66e8b4f
commit
68bcc391e3
2 changed files with 7 additions and 81 deletions
|
|
@ -51,59 +51,4 @@ final class ScanControllerTest extends WebTestCase
|
||||||
$this->client->request('GET', '/scan/part/1');
|
$this->client->request('GET', '/scan/part/1');
|
||||||
$this->assertResponseRedirects('/en/part/1');
|
$this->assertResponseRedirects('/en/part/1');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testLookupReturnsFoundOnKnownPart(): void
|
|
||||||
{
|
|
||||||
$this->client->request('POST', '/en/scan/lookup', [
|
|
||||||
'input' => '0000001',
|
|
||||||
'mode' => '',
|
|
||||||
'info_mode' => 'true',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->assertResponseIsSuccessful();
|
|
||||||
|
|
||||||
$data = json_decode((string) $this->client->getResponse()->getContent(), true, 512, JSON_THROW_ON_ERROR);
|
|
||||||
|
|
||||||
$this->assertTrue($data['ok']);
|
|
||||||
$this->assertTrue($data['found']);
|
|
||||||
$this->assertSame('/en/part/1', $data['redirectUrl']);
|
|
||||||
$this->assertTrue($data['infoMode']);
|
|
||||||
$this->assertIsString($data['html']);
|
|
||||||
$this->assertNotSame('', trim($data['html']));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLookupReturnsNotFoundOnUnknownPart(): void
|
|
||||||
{
|
|
||||||
$this->client->request('POST', '/en/scan/lookup', [
|
|
||||||
// Use a valid LCSC barcode
|
|
||||||
'input' => '{pbn:PICK2407080035,on:WM2407080118,pc:C365735,pm:ES8316,qty:12,mc:,cc:1,pdi:120044290,hp:null,wc:ZH}',
|
|
||||||
'mode' => '',
|
|
||||||
'info_mode' => 'true',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->assertResponseIsSuccessful();
|
|
||||||
|
|
||||||
$data = json_decode((string)$this->client->getResponse()->getContent(), true, 512, JSON_THROW_ON_ERROR);
|
|
||||||
|
|
||||||
$this->assertTrue($data['ok']);
|
|
||||||
$this->assertFalse($data['found']);
|
|
||||||
$this->assertSame(null, $data['redirectUrl']);
|
|
||||||
$this->assertTrue($data['infoMode']);
|
|
||||||
$this->assertIsString($data['html']);
|
|
||||||
$this->assertNotSame('', trim($data['html']));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testLookupReturnsFalseOnGarbageInput(): void
|
|
||||||
{
|
|
||||||
$this->client->request('POST', '/en/scan/lookup', [
|
|
||||||
'input' => 'not-a-real-barcode',
|
|
||||||
'mode' => '',
|
|
||||||
'info_mode' => 'false',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->assertResponseIsSuccessful();
|
|
||||||
|
|
||||||
$data = json_decode((string) $this->client->getResponse()->getContent(), true, 512, JSON_THROW_ON_ERROR);
|
|
||||||
$this->assertFalse($data['ok']);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -80,12 +80,13 @@ final class BarcodeScanResultHandlerTest extends KernelTestCase
|
||||||
$this->assertSame($url, $this->service->getInfoURL($scanResult));
|
$this->assertSame($url, $this->service->getInfoURL($scanResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetRedirectEntityNotFount(): void
|
public function testGetRedirectEntityNotFound(): void
|
||||||
{
|
{
|
||||||
$this->expectException(EntityNotFoundException::class);
|
//If we encounter an invalid lot, we must get an null result
|
||||||
//If we encounter an invalid lot, we must throw an exception
|
$url = $this->service->getInfoURL(new LocalBarcodeScanResult(LabelSupportedElement::PART_LOT,
|
||||||
$this->service->getInfoURL(new LocalBarcodeScanResult(LabelSupportedElement::PART_LOT,
|
|
||||||
12_345_678, BarcodeSourceType::INTERNAL));
|
12_345_678, BarcodeSourceType::INTERNAL));
|
||||||
|
|
||||||
|
$this->assertNull($url);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetRedirectURLThrowsOnUnknownScanType(): void
|
public function testGetRedirectURLThrowsOnUnknownScanType(): void
|
||||||
|
|
@ -101,19 +102,12 @@ final class BarcodeScanResultHandlerTest extends KernelTestCase
|
||||||
$this->service->getInfoURL($unknown);
|
$this->service->getInfoURL($unknown);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testEIGPBarcodeWithoutSupplierPartNumberThrowsEntityNotFound(): void
|
|
||||||
{
|
|
||||||
$scan = new EIGP114BarcodeScanResult([]);
|
|
||||||
|
|
||||||
$this->expectException(EntityNotFoundException::class);
|
|
||||||
$this->service->getInfoURL($scan);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function testEIGPBarcodeResolvePartOrNullReturnsNullWhenNotFound(): void
|
public function testEIGPBarcodeResolvePartOrNullReturnsNullWhenNotFound(): void
|
||||||
{
|
{
|
||||||
$scan = new EIGP114BarcodeScanResult([]);
|
$scan = new EIGP114BarcodeScanResult([]);
|
||||||
|
|
||||||
$this->assertNull($this->service->resolvePart($scan));
|
$this->assertNull($this->service->resolvePart($scan));
|
||||||
|
$this->assertNull($this->service->getInfoURL($scan));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testLCSCBarcodeResolvePartOrNullReturnsNullWhenNotFound(): void
|
public function testLCSCBarcodeResolvePartOrNullReturnsNullWhenNotFound(): void
|
||||||
|
|
@ -124,19 +118,6 @@ final class BarcodeScanResultHandlerTest extends KernelTestCase
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->assertNull($this->service->resolvePart($scan));
|
$this->assertNull($this->service->resolvePart($scan));
|
||||||
}
|
$this->assertNull($this->service->getInfoURL($scan));
|
||||||
|
|
||||||
|
|
||||||
public function testLCSCBarcodeMissingPmThrowsEntityNotFound(): void
|
|
||||||
{
|
|
||||||
// pc present but no pm => getPartFromLCSC() will throw EntityNotFoundException
|
|
||||||
// because it falls back to PM when PC doesn't match anything.
|
|
||||||
$scan = new LCSCBarcodeScanResult(
|
|
||||||
fields: ['pc' => 'C0000000', 'pm' => ''], // pm becomes null via getPM()
|
|
||||||
rawInput: '{pc:C0000000,pm:}'
|
|
||||||
);
|
|
||||||
|
|
||||||
$this->expectException(EntityNotFoundException::class);
|
|
||||||
$this->service->getInfoURL($scan);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue