Separated laravel app to its own folder (#540)

This commit is contained in:
Julien Nahum
2024-08-26 18:24:56 +02:00
committed by GitHub
parent 39b8df5eed
commit 5bd1dda504
546 changed files with 124 additions and 143 deletions

View File

@@ -0,0 +1,42 @@
<?php
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
it('can validate file types', function () {
Storage::shouldReceive('exists')
->andReturn(true);
Storage::shouldReceive('size')
->andReturn(1000000);
$validator = new \App\Rules\StorageFile(1000000, ['jpg', 'JPEG', 'png']);
collect([
'file_name_' . Str::uuid() . '.jpg',
'file_name_' . Str::uuid() . '.png',
'file_name_' . Str::uuid() . '.JPG',
'file_name_' . Str::uuid() . '.JPEG'
])->each(function ($file) use ($validator) {
$this->assertTrue($validator->passes('file', $file));
});
$this->assertFalse($validator->passes('file', 'file_name_' . Str::uuid() . '.pdf'));
});
it('can validate file size', function () {
Storage::shouldReceive('exists')
->andReturn(true);
Storage::shouldReceive('size')
->andReturn(1000000);
$validator = new \App\Rules\StorageFile(1000000);
$this->assertTrue($validator->passes('file', 'file_name_' . Str::uuid() . '.jpg'));
Storage::clearResolvedInstances();
Storage::shouldReceive('exists')
->andReturn(true)
->shouldReceive('size')
->andReturn(2000000);
// Fake pdf with 2 times the authorized size
$this->assertFalse($validator->passes('file', 'file_name_' . Str::uuid() . '.pdf'));
});

View File

@@ -0,0 +1,110 @@
<?php
use App\Service\Forms\FormLogicPropertyResolver;
it('can validate form logic property resolver', function ($property, $formData, $expectedResult) {
$isRequired = FormLogicPropertyResolver::isRequired($property, $formData);
expect($isRequired)->toBe($expectedResult);
})->with([
[
[
'id' => 'title',
'name' => 'Name',
'type' => 'text',
'hidden' => false,
'required' => true,
'logic' => [
'conditions' => [
'operatorIdentifier' => 'and',
'children' => [
[
'identifier' => 'user',
'value' => [
'operator' => 'is_not_empty',
'property_meta' => [
'id' => '93ea3198-353f-440b-8dc9-2ac9a7bee124',
'type' => 'select',
],
'value' => true,
],
],
],
],
'actions' => ['make-it-optional'],
],
],
['93ea3198-353f-440b-8dc9-2ac9a7bee124' => ['One']],
false,
],
[
[
'id' => 'title',
'name' => 'Name',
'type' => 'text',
'hidden' => false,
'required' => true,
'logic' => [
'conditions' => [
'operatorIdentifier' => 'and',
'children' => [
[
'identifier' => 'user',
'value' => [
'operator' => 'is_not_empty',
'property_meta' => [
'id' => '93ea3198-353f-440b-8dc9-2ac9a7bee124',
'type' => 'select',
],
'value' => true,
],
],
],
],
'actions' => ['make-it-optional'],
],
],
['93ea3198-353f-440b-8dc9-2ac9a7bee124' => []],
true,
],
[
[
'id' => 'title',
'name' => 'Name',
'type' => 'text',
'hidden' => false,
'required' => true,
'logic' => [
'conditions' => [
'operatorIdentifier' => 'or',
'children' => [
[
'identifier' => 'user',
'value' => [
'operator' => 'is_not_empty',
'property_meta' => [
'id' => '93ea3198-353f-440b-8dc9-2ac9a7bee124',
'type' => 'select',
],
'value' => true,
],
],
[
'identifier' => 'email',
'value' => [
'operator' => 'contains',
'property_meta' => [
'id' => '93ea3198-353f-440b-8dc9-2ac9a7bee222',
'type' => 'email',
],
'value' => 'abc',
],
],
],
],
'actions' => ['make-it-optional'],
],
],
['93ea3198-353f-440b-8dc9-2ac9a7bee124' => [], '93ea3198-353f-440b-8dc9-2ac9a7bee222' => ['abc']],
false,
],
]);

View File

@@ -0,0 +1,37 @@
<?php
uses(\Tests\TestCase::class);
use Illuminate\Support\Str;
it('can parse filenames', function () {
$fileName = 'Notion_app_logo_85e16d7b-58ed-43bc-8dce-7d3ff7d69f41.png';
$parsedFilename = \App\Service\Storage\StorageFileNameParser::parse($fileName);
expect($parsedFilename->fileName)->toBe('Notion_app_logo');
expect($parsedFilename->uuid)->toBe('85e16d7b-58ed-43bc-8dce-7d3ff7d69f41');
expect($parsedFilename->extension)->toBe('png');
expect($parsedFilename->getMovedFileName())->toBe($fileName);
$uuid = Str::uuid()->toString();
$parsedFilename = \App\Service\Storage\StorageFileNameParser::parse($uuid);
expect($parsedFilename->uuid)->toBe($uuid);
expect($parsedFilename->fileName)->toBeNull();
expect($parsedFilename->extension)->toBeNull();
expect($parsedFilename->getMovedFileName())->toBe($uuid);
$randomString = Str::random(20);
$parsedFilename = \App\Service\Storage\StorageFileNameParser::parse($randomString);
expect($parsedFilename->fileName)->toBeNull();
expect($parsedFilename->uuid)->toBeNull();
expect($parsedFilename->extension)->toBeNull();
expect($parsedFilename->getMovedFileName())->toBeNull();
});
it('can clean non-utf characters', function () {
$fileName = 'Образец_для_заполнения_85e16d7b-58ed-43bc-8dce-7d3ff7d69f41.png';
$parsedFilename = \App\Service\Storage\StorageFileNameParser::parse($fileName);
expect($parsedFilename->fileName)->toBe('Образец_для_заполнения');
expect($parsedFilename->uuid)->toBe('85e16d7b-58ed-43bc-8dce-7d3ff7d69f41');
expect($parsedFilename->extension)->toBe('png');
expect($parsedFilename->getMovedFileName())->toBe('___85e16d7b-58ed-43bc-8dce-7d3ff7d69f41.png');
});

View File

@@ -0,0 +1,23 @@
<?php
uses(\Tests\TestCase::class);
it('can create pro user who are subscribed', function () {
$user = $this->actingAsProUser();
expect($user->is_subscribed)->toBeTrue();
});
it('can create test workspace', function () {
$user = $this->actingAsProUser();
$this->createUserWorkspace($user);
expect($user->workspaces()->count())->toBe(1);
});
it('can make a form for a database', function () {
$user = $this->actingAsProUser();
$workspace = $this->createUserWorkspace($user);
$form = $this->makeForm($user, $workspace);
expect($form->title)->not()->toBeNull();
expect($form->description)->not()->toBeNull();
expect(count($form->properties))->not()->toBe(0);
});