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

orchestral / canvas / 5911693354

19 Aug 2023 01:25PM UTC coverage: 93.757% (-3.0%) from 96.723%
5911693354

push

github

web-flow
Workbench code generators (#22)

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

* wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

---------

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>

47 of 47 new or added lines in 5 files covered. (100.0%)

811 of 865 relevant lines covered (93.76%)

20.83 hits per line

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

26.09
/src/Canvas.php
1
<?php
2

3
namespace Orchestra\Canvas;
4

5
use Illuminate\Filesystem\Filesystem;
6
use Illuminate\Support\Arr;
7
use Illuminate\Support\Collection;
8

9
class Canvas
10
{
11
    /**
12
     * Assume the preset from environment.
13
     */
14
    public static function presetFromEnvironment(string $basePath): string
15
    {
16
        /** detect `testbench.yaml` */
17
        $testbenchYaml = Collection::make([
×
18
            'testbench.yaml',
×
19
            'testbench.yaml.example',
×
20
            'testbench.yaml.dist',
×
21
        ])->filter(fn ($filename) => file_exists($basePath.DIRECTORY_SEPARATOR.$filename))
×
22
            ->first();
×
23

24
        if (! \is_null($testbenchYaml)) {
×
25
            return 'package';
×
26
        }
27

28
        return Collection::make([
×
29
            file_exists($basePath.DIRECTORY_SEPARATOR.'artisan'),
×
30
            file_exists($basePath.DIRECTORY_SEPARATOR.'bootstrap'.DIRECTORY_SEPARATOR.'app.php'),
×
31
            is_dir($basePath.DIRECTORY_SEPARATOR.'bootstrap'.DIRECTORY_SEPARATOR.'cache'),
×
32
        ])->reject(fn ($condition) => $condition === true)
×
33
            ->isEmpty() ? 'laravel' : 'package';
×
34
    }
35

36
    /**
37
     * Make Preset from configuration.
38
     *
39
     * @param  array<string, mixed>  $config
40
     * @return \Orchestra\Canvas\Core\Presets\Preset
41
     */
42
    public static function preset(array $config, string $basePath, Filesystem $files): Core\Presets\Preset
43
    {
44
        /** @var array<string, mixed> $configuration */
45
        $configuration = Arr::except($config, 'preset');
72✔
46

47
        $preset = $config['preset'];
72✔
48

49
        switch ($preset) {
50
            case 'package':
72✔
51
                return new Core\Presets\Package($configuration, $basePath, $files);
1✔
52
            case 'laravel':
71✔
53
                return new Core\Presets\Laravel($configuration, $basePath, $files);
71✔
54
            default:
55
                if (class_exists($preset)) {
×
56
                    /**
57
                     * @var class-string<\Orchestra\Canvas\Core\Presets\Preset> $preset
58
                     *
59
                     * @return \Orchestra\Canvas\Core\Presets\Preset
60
                     */
61
                    return new $preset($configuration, $basePath, $files);
×
62
                }
63

64
                return new Core\Presets\Laravel($configuration, $basePath, $files);
×
65
        }
66
    }
67
}
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

© 2025 Coveralls, Inc