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

tempestphp / tempest-framework / 11834579899

14 Nov 2024 09:41AM UTC coverage: 82.65% (+0.05%) from 82.602%
11834579899

Pull #726

github

web-flow
Merge ecef5860e into 0bdee919e
Pull Request #726: fix(console): handle nested `style` tags

68 of 68 new or added lines in 3 files covered. (100.0%)

26 existing lines in 5 files now uncovered.

7617 of 9216 relevant lines covered (82.65%)

51.59 hits per line

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

91.8
/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
use function Tempest\Support\str;
10

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

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

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

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

34
        return TerminalStyle::RESET;
×
35
    }
36

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

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

92
    public function canContain(TokenType $other): bool
×
93
    {
94
        return false;
×
95
    }
96
}
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