create(fake()->word().'.webm', fake()->randomDigitNotNull()); Process::fake([ UploadedFileAction::formatLoudnessCommand($file) => Process::result(errorOutput: json_encode([ 'input_i' => fake()->randomFloat(), 'input_tp' => fake()->randomFloat(), 'input_lra' => fake()->randomFloat(), 'input_thresh' => fake()->randomFloat(), 'output_i' => fake()->randomFloat(), 'output_tp' => fake()->randomFloat(), 'output_lra' => fake()->randomFloat(), 'output_thresh' => fake()->randomFloat(), 'normalization_type' => 'dynamic', 'target_offset' => fake()->randomFloat(), ])), UploadedFileAction::formatFfprobeCommand($file) => Process::result(json_encode([ 'format' => [ 'tags' => [ 'ENCODER' => 'Lavf{fake()->numberBetween()}', 'DURATION' => '00:01:30.098000000', fake()->word() => fake()->word(), ], ], ])), ]); $validator = Validator::make( ['file' => $file], ['file' => new ExtraneousMetadataFormatRule()], ); $this->assertFalse($validator->passes()); Process::assertRan(UploadedFileAction::formatFfprobeCommand($file)); }); test('passes no extraneous metadata', function () { $file = UploadedFile::fake()->create(fake()->word().'.webm', fake()->randomDigitNotNull()); Process::fake([ UploadedFileAction::formatLoudnessCommand($file) => Process::result(errorOutput: json_encode([ 'input_i' => fake()->randomFloat(), 'input_tp' => fake()->randomFloat(), 'input_lra' => fake()->randomFloat(), 'input_thresh' => fake()->randomFloat(), 'output_i' => fake()->randomFloat(), 'output_tp' => fake()->randomFloat(), 'output_lra' => fake()->randomFloat(), 'output_thresh' => fake()->randomFloat(), 'normalization_type' => 'dynamic', 'target_offset' => fake()->randomFloat(), ])), UploadedFileAction::formatFfprobeCommand($file) => Process::result(json_encode([ 'format' => [ 'tags' => [ 'ENCODER' => 'Lavf{fake()->numberBetween()}', 'DURATION' => '00:01:30.098000000', ], ], ])), ]); $validator = Validator::make( ['file' => $file], ['file' => new ExtraneousMetadataFormatRule()], ); $this->assertTrue($validator->passes()); Process::assertRan(UploadedFileAction::formatFfprobeCommand($file)); });