seed(CatalogoSeeder::class); // Riporta lo schema e i dati allo stato precedente (in cm). Artisan::call('migrate:rollback', ['--path' => self::MIGRAZIONE]); $modello = Modello::where('codice', 'finestra_1_anta')->firstOrFail(); DB::table('listino_prezzi')->insert(['modello_id' => $modello->id, 'larghezza' => 145, 'altezza' => 40, 'prezzo' => 367.2]); $preventivo = Preventivo::create(['token' => Str::random(40), 'stato' => 'bozza']); $item = $preventivo->items()->create([ 'nome_modello' => 'Finestra 1 anta', 'larghezza' => 80, 'altezza' => 120, 'payload' => ['width' => '80.00', 'height' => '120.5', 'maniglia' => 'Bianca'], ]); Artisan::call('migrate', ['--path' => self::MIGRAZIONE]); $this->assertSame([1450, 400], [(int) $modello->listino()->value('larghezza'), (int) $modello->listino()->value('altezza')]); $item->refresh(); $this->assertSame([800, 1200], [$item->larghezza, $item->altezza]); $this->assertSame(['width' => '800', 'height' => '1205', 'maniglia' => 'Bianca'], $item->payload); $righe = collect(ConfigurazioneFormatter::toRows($item->payload))->pluck('value', 'label'); $this->assertSame('800', $righe['Larghezza (mm)']); } }