• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tempestphp / tempest-framework / 14049246919

24 Mar 2025 09:42PM UTC coverage: 79.353% (-0.04%) from 79.391%
14049246919

push

github

web-flow
feat(support): support array parameters in string manipulations (#1073)

48 of 48 new or added lines in 2 files covered. (100.0%)

735 existing lines in 126 files now uncovered.

10492 of 13222 relevant lines covered (79.35%)

90.78 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.06
/src/Tempest/Console/src/Highlight/DynamicTokenType.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace Tempest\Console\Highlight;
6

7
use Tempest\Highlight\Themes\TerminalStyle;
8
use Tempest\Highlight\Tokens\TokenType;
9

10
use function Tempest\Support\str;
11

12
final readonly class DynamicTokenType implements TokenType
13
{
14
    public function __construct(
131✔
15
        private string $style,
16
    ) {}
131✔
17

18
    public function getBeforeStyle(): TerminalStyle
130✔
19
    {
20
        $normalizedStyle = str($this->style)
130✔
21
            ->lower()
130✔
22
            ->replace(['_', '-'], '');
130✔
23

24
        foreach (TerminalStyle::cases() as $case) {
130✔
25
            $normalizedCase = str($case->name)
130✔
26
                ->lower()
130✔
27
                ->replace(['_', '-'], '');
130✔
28

29
            if ($normalizedCase->equals($normalizedStyle)) {
130✔
30
                return $case;
130✔
31
            }
32
        }
33

UNCOV
34
        return TerminalStyle::RESET;
×
35
    }
36

37
    public function getAfterStyle(): TerminalStyle
130✔
38
    {
39
        return match ($this->getBeforeStyle()) {
130✔
40
            // Mods
41
            TerminalStyle::BOLD => TerminalStyle::RESET_INTENSITY,
130✔
42
            TerminalStyle::DIM => TerminalStyle::RESET_INTENSITY,
128✔
43
            TerminalStyle::ITALIC => TerminalStyle::RESET_ITALIC,
128✔
44
            TerminalStyle::HIDDEN => TerminalStyle::VISIBLE,
128✔
45
            TerminalStyle::UNDERLINE => TerminalStyle::RESET_UNDERLINE,
128✔
46
            TerminalStyle::OVERLINE => TerminalStyle::RESET_OVERLINE,
126✔
47
            TerminalStyle::STRIKETHROUGH => TerminalStyle::RESET_STRIKETHROUGH,
126✔
48
            TerminalStyle::REVERSE_TEXT => TerminalStyle::RESET_REVERSE_TEXT,
126✔
49
            // Foregrounds
50
            TerminalStyle::FG_BLACK,
130✔
51
            TerminalStyle::FG_DARK_RED,
130✔
52
            TerminalStyle::FG_DARK_GREEN,
130✔
53
            TerminalStyle::FG_DARK_YELLOW,
130✔
54
            TerminalStyle::FG_DARK_BLUE,
130✔
55
            TerminalStyle::FG_DARK_MAGENTA,
130✔
56
            TerminalStyle::FG_DARK_CYAN,
130✔
57
            TerminalStyle::FG_LIGHT_GRAY,
130✔
58
            TerminalStyle::FG_GRAY,
130✔
59
            TerminalStyle::FG_RED,
130✔
60
            TerminalStyle::FG_GREEN,
130✔
61
            TerminalStyle::FG_YELLOW,
130✔
62
            TerminalStyle::FG_BLUE,
130✔
63
            TerminalStyle::FG_MAGENTA,
130✔
64
            TerminalStyle::FG_CYAN,
130✔
65
            TerminalStyle::FG_WHITE,
130✔
66
                => TerminalStyle::RESET_FOREGROUND,
120✔
67
            // Backgrounds
68
            TerminalStyle::BG_BLACK,
130✔
69
            TerminalStyle::BG_DARK_RED,
130✔
70
            TerminalStyle::BG_DARK_GREEN,
130✔
71
            TerminalStyle::BG_DARK_YELLOW,
130✔
72
            TerminalStyle::BG_DARK_BLUE,
130✔
73
            TerminalStyle::BG_DARK_MAGENTA,
130✔
74
            TerminalStyle::BG_DARK_CYAN,
130✔
75
            TerminalStyle::BG_LIGHT_GRAY,
130✔
76
            TerminalStyle::BG_GRAY,
130✔
77
            TerminalStyle::BG_RED,
130✔
78
            TerminalStyle::BG_GREEN,
130✔
79
            TerminalStyle::BG_YELLOW,
130✔
80
            TerminalStyle::BG_BLUE,
130✔
81
            TerminalStyle::BG_MAGENTA,
130✔
82
            TerminalStyle::BG_CYAN,
130✔
83
            TerminalStyle::BG_WHITE,
130✔
84
                => TerminalStyle::RESET_BACKGROUND,
15✔
85
            default => TerminalStyle::RESET,
130✔
86
        };
130✔
87
    }
88

UNCOV
89
    public function getValue(): string
×
90
    {
UNCOV
91
        return '';
×
92
    }
93

UNCOV
94
    public function canContain(TokenType $other): bool
×
95
    {
UNCOV
96
        return false;
×
97
    }
98
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc