95 lines
3.5 KiB
PHP
95 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature\Business;
|
|
|
|
use App\Models\Auth\Permission;
|
|
use Symfony\Component\HttpKernel\Exception\HttpException;
|
|
use Tests\Feature\FeatureTestCase;
|
|
|
|
class AgreementSigningPageTest extends FeatureTestCase
|
|
{
|
|
protected function grantWorkspaceAccess(): void
|
|
{
|
|
$this->user->attachPermission(
|
|
Permission::where('name', 'read-admin-panel')->firstOrFail()
|
|
);
|
|
}
|
|
|
|
public function testAgreementSigningPageRendersTheSigningWorkspace(): void
|
|
{
|
|
$this->grantWorkspaceAccess();
|
|
|
|
$this->loginAs()
|
|
->get(route('business.pages.show', [
|
|
'section' => 'courier-payables',
|
|
'page' => 'agreement-signing',
|
|
]))
|
|
->assertOk()
|
|
->assertSeeText('协议签署')
|
|
->assertSeeText('签署任务')
|
|
->assertSeeText('发起签章')
|
|
->assertSeeText('模板管理')
|
|
->assertSeeText('E签宝未连接')
|
|
->assertSeeText('还没有协议签署任务')
|
|
->assertSeeText('收款账户变更证明.doc')
|
|
->assertSeeText('收款账户证明文件.doc')
|
|
->assertSeeText('公司主体变更证明.docx')
|
|
->assertSeeText('共用合同证明.docx')
|
|
->assertSeeText('授权委托书(快递).docx');
|
|
}
|
|
|
|
public function testAgreementSigningPageIncludesSinglePageRequestFormAndLivePreview(): void
|
|
{
|
|
$this->grantWorkspaceAccess();
|
|
|
|
$this->loginAs()
|
|
->get(route('business.pages.show', [
|
|
'section' => 'courier-payables',
|
|
'page' => 'agreement-signing',
|
|
'agreement_view' => 'create',
|
|
]))
|
|
->assertOk()
|
|
->assertSee('data-signing-request-form', false)
|
|
->assertSee('data-agreement-preview', false)
|
|
->assertSee('data-sign-request-send disabled', false)
|
|
->assertDontSee('data-agreement-step-panel', false)
|
|
->assertSeeText('发起签章请求')
|
|
->assertSeeText('快递公司')
|
|
->assertSeeText('文件类型')
|
|
->assertSeeText('收款账户证明')
|
|
->assertSeeText('TPL-ACCOUNT-CERT-V2')
|
|
->assertSeeText('我方签署主体')
|
|
->assertSeeText('公司全称')
|
|
->assertSeeText('签署截止日期')
|
|
->assertSeeText('对方E签宝账号')
|
|
->assertSeeText('填写变量')
|
|
->assertSeeText('签署完成后自动归档')
|
|
->assertSeeText('人工确认后归档')
|
|
->assertSeeText('刷新预览')
|
|
->assertSeeText('推送至E签宝')
|
|
->assertSeeText('收款账户资料证明');
|
|
}
|
|
|
|
public function testAgreementSigningPageRejectsUsersWithoutItsSidebarPermission(): void
|
|
{
|
|
$subject = 'user_' . $this->user->id;
|
|
|
|
setting()->set('system.sidebar_permissions', json_encode([
|
|
'configured' => [$subject],
|
|
'subjects' => [
|
|
$subject => ['courier-payables/freight-reconciliation'],
|
|
],
|
|
], JSON_UNESCAPED_UNICODE));
|
|
|
|
try {
|
|
$this->loginAs()->get(route('business.pages.show', [
|
|
'section' => 'courier-payables',
|
|
'page' => 'agreement-signing',
|
|
]));
|
|
$this->fail('没有协议签署页面权限的用户不应访问该页面。');
|
|
} catch (HttpException $exception) {
|
|
$this->assertSame(404, $exception->getStatusCode());
|
|
}
|
|
}
|
|
}
|