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

orchestral / canvas / 6185342090

14 Sep 2023 12:21PM UTC coverage: 86.458% (-3.5%) from 89.945%
6185342090

Pull #24

github

crynobone
wip

Signed-off-by: Mior Muhammad Zaki <crynobone@gmail.com>
Pull Request #24: Use Laravel Generator Preset

173 of 173 new or added lines in 11 files covered. (100.0%)

166 of 192 relevant lines covered (86.46%)

7.2 hits per line

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

96.55
/src/CanvasServiceProvider.php
1
<?php
2

3
namespace Orchestra\Canvas;
4

5
use Illuminate\Console\Generators\PresetManager;
6
use Illuminate\Contracts\Foundation\Application;
7
use Illuminate\Contracts\Support\DeferrableProvider;
8
use Illuminate\Support\Arr;
9
use Illuminate\Support\ServiceProvider;
10
use Symfony\Component\Yaml\Yaml;
11

12
class CanvasServiceProvider extends ServiceProvider implements DeferrableProvider
13
{
14
    /**
15
     * Register services.
16
     *
17
     * @return void
18
     */
19
    public function register(): void
20
    {
21
        if (class_exists(PresetManager::class)) {
23✔
22
            $this->callAfterResolving(PresetManager::class, function ($manager, $app) {
23✔
23
                $manager->extend('canvas', function ($app) {
23✔
24
                    return new GeneratorPreset($app);
23✔
25
                });
23✔
26

27
                $manager->setDefaultDriver('canvas');
23✔
28
            });
23✔
29
        }
30

31
        $this->app->singleton('orchestra.canvas', function (Application $app) {
23✔
32
            $workingPath = \defined('CANVAS_WORKING_PATH') ? CANVAS_WORKING_PATH : $this->app->basePath();
6✔
33

34
            $filesystem = $app->make('files');
6✔
35

36
            $config = ['preset' => 'laravel'];
6✔
37

38
            if (file_exists($workingPath.DIRECTORY_SEPARATOR.'canvas.yaml')) {
6✔
39
                $config = Yaml::parseFile($workingPath.DIRECTORY_SEPARATOR.'canvas.yaml');
×
40
            } else {
41
                Arr::set($config, 'testing.extends', [
6✔
42
                    'unit' => 'PHPUnit\Framework\TestCase',
6✔
43
                    'feature' => 'Tests\TestCase',
6✔
44
                ]);
6✔
45

46
                $config['namespace'] = rescue(fn () => rtrim($this->app->getNamespace(), '\\'), null, false);
6✔
47
            }
48

49
            return Canvas::preset($config, $workingPath);
6✔
50
        });
23✔
51
    }
52

53
    /**
54
     * Bootstrap services.
55
     */
56
    public function boot(): void
57
    {
58
        if ($this->app->runningInConsole()) {
23✔
59
            $this->commands([
23✔
60
                Console\CodeMakeCommand::class,
23✔
61
                Console\FactoryMakeCommand::class,
23✔
62
                Console\GeneratorMakeCommand::class,
23✔
63
                Console\TestMakeCommand::class,
23✔
64
                Console\ViewMakeCommand::class,
23✔
65
            ]);
23✔
66
        }
67
    }
68

69
    /**
70
     * Get the services provided by the provider.
71
     *
72
     * @return array<int, string>
73
     */
74
    public function provides()
75
    {
76
        return ['orchestra.canvas'];
1✔
77
    }
78
}
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