108 lines
4.7 KiB
PHP
108 lines
4.7 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\View;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
class ThirdPartyWarehouseStorageViewTest extends TestCase
|
|
{
|
|
public function test_view_keeps_the_excel_columns_in_the_required_order(): void
|
|
{
|
|
$source = $this->viewSource();
|
|
|
|
preg_match_all(
|
|
"/\\['key' => '([^']+)', 'label' => '([^']+)'(?:, 'type' => '[^']+')?\\],/",
|
|
$source,
|
|
$matches,
|
|
PREG_SET_ORDER
|
|
);
|
|
|
|
$columns = array_map(
|
|
static fn (array $match): array => [$match[1], $match[2]],
|
|
array_slice($matches, 0, 28)
|
|
);
|
|
|
|
$this->assertSame([
|
|
['owner', '货主'],
|
|
['date', '日期'],
|
|
['sku_code', '商品编码'],
|
|
['image_url', '图片'],
|
|
['product_name', '商品名称'],
|
|
['short_name', '商品简称'],
|
|
['supplier', '供应商'],
|
|
['category', '分类'],
|
|
['virtual_category', '虚拟分类'],
|
|
['supplier_style_no', '供应商款号'],
|
|
['color_spec', '颜色规格'],
|
|
['brand', '品牌'],
|
|
['unit', '单位'],
|
|
['opening_qty', '期初数量'],
|
|
['closing_qty', '期末数量'],
|
|
['processing_in', '加工进仓'],
|
|
['processing_out', '加工出仓'],
|
|
['purchase_in', '采购进仓'],
|
|
['purchase_return', '采购退货'],
|
|
['other_in', '其它进仓'],
|
|
['other_return', '其它退货'],
|
|
['sales_out', '销售出仓'],
|
|
['sales_return', '销售退货'],
|
|
['stocktake', '盘点'],
|
|
['transfer_out', '调拨出'],
|
|
['transfer_in', '调拨入'],
|
|
['opening_aux', '期初'],
|
|
['other_out', '其它出库'],
|
|
], $columns);
|
|
}
|
|
|
|
public function test_view_reuses_finance_table_preferences_and_has_explicit_sync_states(): void
|
|
{
|
|
$source = $this->viewSource();
|
|
|
|
$this->assertStringContainsString('data-finance-table-surface', $source);
|
|
$this->assertStringContainsString('data-finance-field-picker', $source);
|
|
$this->assertStringContainsString('data-finance-table', $source);
|
|
$this->assertStringContainsString('data-finance-export-base', $source);
|
|
$this->assertStringContainsString('data-finance-export-query', $source);
|
|
$this->assertStringContainsString('name="dimension" value="month"', $source);
|
|
$this->assertStringContainsString('name="dimension" value="day"', $source);
|
|
$this->assertStringContainsString('name="period"', $source);
|
|
$this->assertStringContainsString("\$rows->appends(\$activeFilters)", $source);
|
|
$this->assertStringContainsString('data-warehouse-period', $source);
|
|
$this->assertStringContainsString('查询维度:商品 + 按天', $source);
|
|
$this->assertStringContainsString('每日 00:00 自动同步', $source);
|
|
$this->assertStringContainsString('首次同步尚未完成', $source);
|
|
$this->assertStringContainsString('当前展示最近一次成功同步的数据', $source);
|
|
$this->assertStringContainsString("in_array(\$scheme, ['http', 'https'], true)", $source);
|
|
$this->assertStringContainsString('referrerpolicy="no-referrer"', $source);
|
|
}
|
|
|
|
public function test_summary_only_displays_inventory_counts(): void
|
|
{
|
|
$source = $this->viewSource();
|
|
|
|
$this->assertStringContainsString('grid-template-columns:repeat(3,minmax(8rem,1fr))', $source);
|
|
$this->assertStringContainsString("['key' => 'count', 'label' => '明细记录数'", $source);
|
|
$this->assertStringContainsString("['key' => 'opening_qty', 'label' => '期初数量合计'", $source);
|
|
$this->assertStringContainsString("['key' => 'closing_qty', 'label' => '期末数量合计'", $source);
|
|
$this->assertStringNotContainsString("['key' => 'inbound_fee'", $source);
|
|
$this->assertStringNotContainsString("['key' => 'outbound_fee'", $source);
|
|
$this->assertStringNotContainsString("['key' => 'storage_fee'", $source);
|
|
$this->assertStringNotContainsString("['key' => 'total_fee'", $source);
|
|
$this->assertStringNotContainsString('ThirdPartyWarehouseStorageSettlementService', $source);
|
|
$this->assertStringNotContainsString('导出仓储费核算', $source);
|
|
$this->assertStringNotContainsString('仓储费暂时无法核算', $source);
|
|
}
|
|
|
|
private function viewSource(): string
|
|
{
|
|
$root = dirname(__DIR__, 3);
|
|
$source = file_get_contents(
|
|
$root . '/resources/views/business/pages/courier-payables/third-party-warehouse-storage.blade.php'
|
|
);
|
|
|
|
$this->assertIsString($source);
|
|
|
|
return $source;
|
|
}
|
|
}
|