assertTrue($system['registered']); $this->assertSame('TRANSACTIONAL', $system['category']); $this->assertSame(['edit_content' => true, 'delete' => false, 'change_key' => false, 'disable' => false], $system['permissions']); $this->assertTrue(EmailScenarioRegistry::describe('order_created')['permissions']['disable']); $custom = EmailScenarioRegistry::describe('promo_thang_10', 'promo'); $this->assertFalse($custom['registered']); $this->assertSame('MARKETING', $custom['category']); $this->assertTrue($custom['permissions']['delete']); } public function test_missing_variables_accepts_both_syntaxes_and_layout_slot(): void { $this->assertSame([], EmailScenarioRegistry::missingVariables(['reset_url'], 'x', '')); $this->assertSame([], EmailScenarioRegistry::missingVariables(['reset_url'], 'Link {{reset_url}}', '')); $this->assertSame(['reset_url'], EmailScenarioRegistry::missingVariables(['reset_url'], 'x', '

Đặt lại mật khẩu

')); $this->assertSame([], EmailScenarioRegistry::missingVariables(['content'], null, '{{$content}}
')); $this->assertSame(['content'], EmailScenarioRegistry::missingVariables(['content'], null, '
')); } }