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

orchestral / canvas / 5926060655

21 Aug 2023 12:13PM UTC coverage: 94.171% (-2.6%) from 96.763%
5926060655

push

github

crynobone
wip

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

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

824 of 875 relevant lines covered (94.17%)

21.34 hits per line

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

24.0
/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(function ($filename) use ($basePath) {
×
22
            return file_exists($basePath.DIRECTORY_SEPARATOR.$filename);
×
23
        })->first();
×
24

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

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

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

49
        $preset = $config['preset'];
72✔
50

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

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