beyondcode / laravel-visual-diff

Create visual diffs in your Laravel application tests.
MIT License
163 stars 24 forks source link

Not detecting diff #3

Open ijpatricio opened 6 years ago

ijpatricio commented 6 years ago

Hello @mpociot

So I go to try it out, even with first example Dusk test.

$this->browse(function (Browser $browser) {
            $browser->visit('/')
                ->assertSee('Laravel')
                ->visualDiff('homepage');
        });

run it once, makes screenshot in VisualRegression/screenshots

image

Change welcome view, to LaravelX, run test again screenshot changes, and test keeps green image

I went further and...

Changed Laravel to Laravel {{ str_random(10) }}

and now test case

$this->browse(function (Browser $browser) {
            $browser->visit('/')
                ->assertSee('Laravel')
                ->visualDiff('homepage');

            $browser->visit('/')
                ->assertSee('Laravel')
                ->visualDiff('homepage');
        });

2 assertions green

screenshot image

I was running the package from the fork, and on same commit as tagged 1.0.0

I had to lower version of laravel/dusk to install dev-dependencies, like the orchestra/test-dusk-workbench was in conflict and dusk test came red

image

Let me know if I missed from saying something, and if I can be of any help!

ijpatricio commented 6 years ago

Daaam. I think I got it.

On

https://github.com/beyondcode/laravel-visual-diff/blob/fbf586f2a88671587c5d0a66def342e43333d7e2/src/VisualDiff.php#L134-L140

I added

else {
            abort(500, 'process of comparison not successful');
        }

and so it's from here, i guess. but weird because it shoul throw some exception here, right?

ijpatricio commented 6 years ago

image

ijpatricio commented 6 years ago

Sorry for the spam.

npm install -g pngjs

dis the trick, it's working as supposed!!

@mpociot would you like a PR to abort when that process does not go well??

And now I can continue with what we talked about :)

ijpatricio commented 6 years ago

So all this was because a missing dependency pngjs, that weirdly wasn't installed, as it is a nested dependency from pixelmatch.

Even so I think is very handy to know when the external node process doesn't go well. Instructs us right away of that. If not, it just keeps getting green.

Submitted #4