diff --git a/public/mix-manifest.json b/public/mix-manifest.json index b6b28464..393ad24e 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -8,11 +8,11 @@ "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=1d731f1c4a9daecb2a99", "/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~9b68162c.js": "/chunks/admin~chunks/app-language~chunks/dashboard~chunks/files~chunks/invoices~chunks/my-shared-item~9b68162c.js?id=5841d65172536a8a9bdc", "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~673d1ac3.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~673d1ac3.js?id=d00148360f3d89f2791e", - "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js?id=2b6bed8bd1b30d268e46", + "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.js?id=242a9e122b975c48009d", "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~1bec6fe4.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/shared~1bec6fe4.js?id=510e6c1b1017a73a40a6", "/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=90270d0c5aeb5c50dacf", "/chunks/admin~chunks/platform~chunks/settings.js": "/chunks/admin~chunks/platform~chunks/settings.js?id=61e970ffb679245686c3", - "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=9e3809e5e5d084a64d9b", + "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=b40d731af7b025b87b30", "/chunks/app-appearance.js": "/chunks/app-appearance.js?id=66048f6dddf596913bbd", "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~605f4c49.js?id=aa284736dda7647d5c9e", "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js": "/chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chunks/app-others~chunks~8cc7d96f.js?id=6bd4516589f23ec25ae6", @@ -74,7 +74,7 @@ "/chunks/settings~chunks/settings-password.js": "/chunks/settings~chunks/settings-password.js?id=e67e12955133c57194d1", "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=651d5accf401908724c5", "/chunks/shared.js": "/chunks/shared.js?id=6230d050545cd1bd9b87", - "/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=96b63d8e80c82dda1f9a", + "/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=93c1c7e650b74e09ccab", "/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=8b9ac9ed9afd8dd15229", "/chunks/shared/files.js": "/chunks/shared/files.js?id=8ed7578e7f74e385da95", "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=f2fb680ebf4873ff4436", @@ -577,7 +577,7 @@ "/chunks/admin~chunks/files~chunks/invitation~chunks/my-shared-items~chunks/platform~chunks/recent-upl~dfa67595.js": "/chunks/admin~chunks/files~chunks/invitation~chunks/my-shared-items~chunks/platform~chunks/recent-upl~dfa67595.js?id=bcec1c96b2248aa0d451", "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.3e07bae3987249743b99.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.3e07bae3987249743b99.hot-update.js", "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~34b5eb22.3e07bae3987249743b99.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~34b5eb22.3e07bae3987249743b99.hot-update.js", - "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~bf3ddedc.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~bf3ddedc.js?id=9a1bb33d3b2a29b1e823", + "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~bf3ddedc.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~bf3ddedc.js?id=0380cf3f45f87d9ea5b8", "/chunks/shared/single-file.3e07bae3987249743b99.hot-update.js": "/chunks/shared/single-file.3e07bae3987249743b99.hot-update.js", "/chunks/shared/single-file.f6729672ce5f9ec91bba.hot-update.js": "/chunks/shared/single-file.f6729672ce5f9ec91bba.hot-update.js", "/chunks/shared/single-file.269aae12674c0fa0ba78.hot-update.js": "/chunks/shared/single-file.269aae12674c0fa0ba78.hot-update.js", @@ -1286,5 +1286,18 @@ "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~34b5eb22.9f0b5306550607ac0355.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~34b5eb22.9f0b5306550607ac0355.hot-update.js", "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~34b5eb22.f605c583768e448fdbaf.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~34b5eb22.f605c583768e448fdbaf.hot-update.js", "/js/main.41be49db7b2bfe9e8d01.hot-update.js": "/js/main.41be49db7b2bfe9e8d01.hot-update.js", - "/js/main.655b1f79df9155310ca7.hot-update.js": "/js/main.655b1f79df9155310ca7.hot-update.js" + "/js/main.655b1f79df9155310ca7.hot-update.js": "/js/main.655b1f79df9155310ca7.hot-update.js", + "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.b27eef3eeabb8882aebd.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.b27eef3eeabb8882aebd.hot-update.js", + "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.869010dfa4e84ce2f806.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.869010dfa4e84ce2f806.hot-update.js", + "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.8f9f4c59797b09adafc5.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.8f9f4c59797b09adafc5.hot-update.js", + "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.31aa7ceb2fa1a8357ac1.hot-update.js": "/chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunks/settin~97130d1f.31aa7ceb2fa1a8357ac1.hot-update.js", + "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~bf3ddedc.31aa7ceb2fa1a8357ac1.hot-update.js": "/chunks/files~chunks/my-shared-items~chunks/recent-uploads~chunks/shared-with-me~chunks/shared/files~~bf3ddedc.31aa7ceb2fa1a8357ac1.hot-update.js", + "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.4b8ce83b46d6f881c088.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.4b8ce83b46d6f881c088.hot-update.js", + "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.7a477cd3baccd132ca08.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.7a477cd3baccd132ca08.hot-update.js", + "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.b0cb3b358e0bfdd76e3e.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.b0cb3b358e0bfdd76e3e.hot-update.js", + "/chunks/shared-with-me.34a83ec8132a90cad69d.hot-update.js": "/chunks/shared-with-me.34a83ec8132a90cad69d.hot-update.js", + "/chunks/shared-with-me.6254b2b076cc0856e739.hot-update.js": "/chunks/shared-with-me.6254b2b076cc0856e739.hot-update.js", + "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.9145f557db6631ef7534.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.9145f557db6631ef7534.hot-update.js", + "/chunks/shared-with-me.4e39e4f244eb1f730c36.hot-update.js": "/chunks/shared-with-me.4e39e4f244eb1f730c36.hot-update.js", + "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.df58e82a175e60d205da.hot-update.js": "/chunks/admin~chunks/platform~chunks/settings~chunks/shared.df58e82a175e60d205da.hot-update.js" } diff --git a/resources/js/components/FilesView/ItemGrid.vue b/resources/js/components/FilesView/ItemGrid.vue index ad4f695c..46bab7c7 100644 --- a/resources/js/components/FilesView/ItemGrid.vue +++ b/resources/js/components/FilesView/ItemGrid.vue @@ -24,7 +24,7 @@ v-if="user && canShowAuthor" :size="38" :is-border="true" - :member="entry.data.relationships.user" + :member="entry.data.relationships.owner" class="absolute lg:-bottom-7 right-2 -bottom-5 z-10 transform lg:scale-100 scale-75 z-10" /> @@ -39,7 +39,7 @@ v-if="user && canShowAuthor" :size="38" :is-border="true" - :member="entry.data.relationships.user" + :member="entry.data.relationships.owner" class="absolute -right-3 -bottom-2.5 transform lg:scale-100 scale-75 z-10" /> @@ -160,7 +160,7 @@ canShowAuthor() { return this.$isThisRoute(this.$route, ['SharedWithMe', 'TeamFolders']) && !this.isFolder - && this.user.data.id !== this.entry.data.relationships.user.data.id + && this.user.data.id !== this.entry.data.relationships.owner.data.id }, canDrag() { return !this.isDeleted && this.$checkPermission(['master', 'editor']) diff --git a/resources/js/components/FilesView/ItemList.vue b/resources/js/components/FilesView/ItemList.vue index 019f1236..3c126cb2 100644 --- a/resources/js/components/FilesView/ItemList.vue +++ b/resources/js/components/FilesView/ItemList.vue @@ -12,7 +12,7 @@ v-if="user && canShowAuthor" :size="28" :is-border="true" - :member="entry.data.relationships.user" + :member="entry.data.relationships.owner" class="absolute right-1.5 -bottom-2 z-10" /> @@ -136,9 +136,8 @@ : this.entry.data.attributes.items }, canShowAuthor() { - return this.$isThisRoute(this.$route, ['SharedWithMe', 'TeamFolders']) - && !this.isFolder - && this.user.data.id !== this.entry.data.relationships.user.data.id + return !this.isFolder + && this.user.data.id !== this.entry.data.relationships.owner.data.id }, canDrag() { return !this.isDeleted && this.$checkPermission(['master', 'editor']) diff --git a/resources/js/components/Spotlight/Spotlight.vue b/resources/js/components/Spotlight/Spotlight.vue index 295ce257..418aab0f 100644 --- a/resources/js/components/Spotlight/Spotlight.vue +++ b/resources/js/components/Spotlight/Spotlight.vue @@ -77,6 +77,7 @@ import ItemList from "../FilesView/ItemList" import {events} from '/resources/js/bus' import {debounce} from 'lodash'; import axios from "axios"; +import {mapGetters} from "vuex"; export default { name: 'Spotlight', @@ -87,6 +88,9 @@ export default { XIcon, }, computed: { + ...mapGetters([ + 'user' + ]), metaKeyIcon() { return this.$isApple() ? '⌘' : 'alt' }, @@ -135,7 +139,17 @@ export default { // Show folder if (file.data.type === 'folder') { - this.$router.push({name: 'Files', params: {id: file.data.id}}) + + if (file.data.attributes.isTeamFolder) { + + if (file.data.relationships.owner.data.id === this.user.data.id) { + this.$router.push({name: 'TeamFolders', params: {id: file.data.id}}) + } else { + this.$router.push({name: 'SharedWithMe', params: {id: file.data.id}}) + } + } else { + this.$router.push({name: 'Files', params: {id: file.data.id}}) + } } else { // Show file diff --git a/resources/js/views/FileView/SharedWithMe.vue b/resources/js/views/FileView/SharedWithMe.vue index ec74e05a..f1fd8ba2 100644 --- a/resources/js/views/FileView/SharedWithMe.vue +++ b/resources/js/views/FileView/SharedWithMe.vue @@ -201,6 +201,7 @@ }, }, created() { + this.$store.commit('SET_CURRENT_TEAM_FOLDER', undefined) this.$store.dispatch('getSharedWithMeFolder', this.$route.params.id) events.$on('context-menu:show', (event, item) => this.item = item) diff --git a/src/App/Console/Commands/SetupDevEnvironment.php b/src/App/Console/Commands/SetupDevEnvironment.php index 70b36383..a61a8579 100644 --- a/src/App/Console/Commands/SetupDevEnvironment.php +++ b/src/App/Console/Commands/SetupDevEnvironment.php @@ -1106,7 +1106,7 @@ class SetupDevEnvironment extends Command // Generate avatar collect(config('vuefilemanager.avatar_sizes')) - ->each(function ($size) use ($img , $avatar_name) { + ->each(function ($size) use ($img, $avatar_name) { // fit thumbnail $img->fit($size['size'], $size['size'])->stream(); diff --git a/src/Domain/Browsing/Controllers/SearchFilesAndFoldersController.php b/src/Domain/Browsing/Controllers/SearchFilesAndFoldersController.php index b56261f1..729f6969 100644 --- a/src/Domain/Browsing/Controllers/SearchFilesAndFoldersController.php +++ b/src/Domain/Browsing/Controllers/SearchFilesAndFoldersController.php @@ -2,9 +2,9 @@ namespace Domain\Browsing\Controllers; use DB; +use Illuminate\Support\Arr; use Domain\Files\Models\File; use Domain\Folders\Models\Folder; -use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; use Domain\Items\Requests\SearchRequest; use Domain\Files\Resources\FilesCollection; diff --git a/src/Domain/Files/Resources/FileResource.php b/src/Domain/Files/Resources/FileResource.php index b0dd600c..2fa9a510 100644 --- a/src/Domain/Files/Resources/FileResource.php +++ b/src/Domain/Files/Resources/FileResource.php @@ -59,9 +59,9 @@ class FileResource extends JsonResource ], ]), $this->mergeWhen($this->owner, fn () => [ - 'user' => [ + 'owner' => [ 'data' => [ - 'type' => 'user', + 'type' => 'owner', 'id' => $this->user_id, 'attributes' => [ 'name' => $this->owner->settings->name, diff --git a/src/Domain/Folders/Actions/CreateFolderAction.php b/src/Domain/Folders/Actions/CreateFolderAction.php index bab0972e..38944630 100644 --- a/src/Domain/Folders/Actions/CreateFolderAction.php +++ b/src/Domain/Folders/Actions/CreateFolderAction.php @@ -9,19 +9,33 @@ use Domain\Folders\Requests\CreateFolderRequest; class CreateFolderAction { /** - * Create new directory + * Create new folder */ public function __invoke( CreateFolderRequest $request, ?Share $shared = null, - ): Folder | array { + ): Folder|array { + /* + * check if exist parent team folder, if yes, + * then get folder to detect whether it is team_folder + */ + if ($request->has('parent_id')) { + $isTeamFolder = Folder::find( + $request->input('parent_id') + ) + ->getLatestParent() + ->team_folder; + } + + // Create folder record return Folder::create([ - 'parent_id' => $request->input('parent_id'), - 'name' => $request->input('name'), - 'color' => $request->input('color') ?? null, - 'emoji' => $request->input('emoji') ?? null, - 'author' => $shared ? 'visitor' : 'user', - 'user_id' => $shared ? $shared->user_id : Auth::id(), + 'parent_id' => $request->input('parent_id'), + 'name' => $request->input('name'), + 'color' => $request->input('color') ?? null, + 'emoji' => $request->input('emoji') ?? null, + 'author' => $shared ? 'visitor' : 'user', + 'user_id' => $shared ? $shared->user_id : Auth::id(), + 'team_folder' => $isTeamFolder ?? false, ]); } } diff --git a/src/Domain/Folders/Models/Folder.php b/src/Domain/Folders/Models/Folder.php index cd6adcf4..71c2474f 100644 --- a/src/Domain/Folders/Models/Folder.php +++ b/src/Domain/Folders/Models/Folder.php @@ -192,6 +192,11 @@ class Folder extends Model ->withPivot('permission'); } + public function owner(): HasOne + { + return $this->hasOne(User::class, 'id', 'user_id'); + } + public function parents(): HasMany { return $this->hasMany(Folder::class, 'id', 'parent_id'); diff --git a/src/Domain/Folders/Resources/FolderResource.php b/src/Domain/Folders/Resources/FolderResource.php index a6fe753c..d3cf9726 100644 --- a/src/Domain/Folders/Resources/FolderResource.php +++ b/src/Domain/Folders/Resources/FolderResource.php @@ -54,6 +54,19 @@ class FolderResource extends JsonResource ], ], ]), + $this->mergeWhen($this->owner, fn () => [ + 'owner' => [ + 'data' => [ + 'type' => 'owner', + 'id' => $this->user_id, + 'attributes' => [ + 'name' => $this->owner->settings->name, + 'avatar' => $this->owner->settings->avatar, + 'color' => $this->owner->settings->color, + ], + ], + ], + ]), ], ], ]; diff --git a/src/Domain/Zip/Controllers/ZipController.php b/src/Domain/Zip/Controllers/ZipController.php index efcc7086..4a30f963 100644 --- a/src/Domain/Zip/Controllers/ZipController.php +++ b/src/Domain/Zip/Controllers/ZipController.php @@ -4,7 +4,6 @@ namespace Domain\Zip\Controllers; use Illuminate\Http\Request; use Domain\Zip\Actions\ZipAction; use App\Http\Controllers\Controller; -use Illuminate\Support\Facades\Auth; use Domain\Traffic\Actions\RecordDownloadAction; use Domain\Zip\Actions\GetItemsListFromUrlParamAction; diff --git a/tests/Domain/Folders/FolderTest.php b/tests/Domain/Folders/FolderTest.php index eb77421d..1ee27ba1 100644 --- a/tests/Domain/Folders/FolderTest.php +++ b/tests/Domain/Folders/FolderTest.php @@ -29,14 +29,13 @@ class FolderTest extends TestCase */ public function it_create_new_folder() { - $user = User::factory(User::class) + $user = User::factory() ->create(); $this ->actingAs($user) ->postJson('/api/create-folder', [ 'name' => 'New Folder', - 'parent_id' => null, ]) ->assertStatus(201) ->assertJsonFragment([ @@ -53,7 +52,7 @@ class FolderTest extends TestCase */ public function it_rename_folder() { - $user = User::factory(User::class) + $user = User::factory() ->create(); $folder = Folder::factory(Folder::class) @@ -82,7 +81,7 @@ class FolderTest extends TestCase */ public function it_set_folder_emoji() { - $user = User::factory(User::class) + $user = User::factory() ->create(); $folder = Folder::factory(Folder::class) @@ -120,7 +119,7 @@ class FolderTest extends TestCase */ public function it_set_folder_color() { - $user = User::factory(User::class) + $user = User::factory() ->create(); $folder = Folder::factory(Folder::class) @@ -153,7 +152,7 @@ class FolderTest extends TestCase */ public function it_move_folder_to_another_folder() { - $user = User::factory(User::class) + $user = User::factory() ->create(); $root = Folder::factory(Folder::class) @@ -189,7 +188,7 @@ class FolderTest extends TestCase */ public function it_delete_multiple_folder_softly() { - $user = User::factory(User::class) + $user = User::factory() ->create(); $folder_1 = Folder::factory(Folder::class) @@ -239,7 +238,7 @@ class FolderTest extends TestCase */ public function it_delete_multiple_folder_hardly() { - $user = User::factory(User::class) + $user = User::factory() ->create(); $folder_1 = Folder::factory(Folder::class) @@ -283,7 +282,7 @@ class FolderTest extends TestCase */ public function it_delete_folder_with_their_content_within_softly() { - $user = User::factory(User::class) + $user = User::factory() ->create(); $folder_root = Folder::factory(Folder::class) @@ -341,7 +340,7 @@ class FolderTest extends TestCase */ public function it_delete_folder_with_their_content_within_hardly() { - $user = User::factory(User::class) + $user = User::factory() ->create(); Sanctum::actingAs($user); diff --git a/tests/Domain/Spotlight/SearchTest.php b/tests/Domain/Spotlight/SearchTest.php index 68dd1890..920ade03 100644 --- a/tests/Domain/Spotlight/SearchTest.php +++ b/tests/Domain/Spotlight/SearchTest.php @@ -1,12 +1,11 @@ each( - fn($file) => $this + fn ($file) => $this ->actingAs($user) ->getJson('/api/browse/search?query=' . mb_strtolower(mb_substr($file->name, 0, 3))) ->assertStatus(200) @@ -91,7 +90,7 @@ class SearchTest extends TestCase $folderWithin = Folder::factory() ->create([ - 'name' => "Folder within Alice", + 'name' => 'Folder within Alice', 'parent_id' => $folder->id, 'user_id' => $owner->id, ]); diff --git a/tests/Domain/Teams/TeamsTest.php b/tests/Domain/Teams/TeamsTest.php index 57315b78..328fb904 100644 --- a/tests/Domain/Teams/TeamsTest.php +++ b/tests/Domain/Teams/TeamsTest.php @@ -84,6 +84,31 @@ class TeamsTest extends TestCase Notification::assertTimesSent(2, InvitationIntoTeamFolder::class); } + /** + * @test + */ + public function it_mark_newly_created_folder_as_team_folder() + { + $user = User::factory() + ->create(); + + $teamFolder = Folder::factory() + ->create([ + 'team_folder' => 1, + ]); + + $this + ->actingAs($user) + ->postJson('/api/create-folder', [ + 'name' => 'Inner Folder', + 'parent_id' => $teamFolder->id, + ]) + ->assertStatus(201) + ->assertJsonFragment([ + 'isTeamFolder' => true, + ]); + } + /** * @test */