From 0989098a25401c31833eeb3b9057e43ac38c0e8b Mon Sep 17 00:00:00 2001 From: Enis Necipoglu Date: Wed, 17 Jan 2024 13:08:45 +0300 Subject: [PATCH] Add test for unrelating Page from MenuItem --- .../Menus/MenuItemAdminAppService_Tests.cs | 23 +++++++++++++++++++ .../CmsKitDataSeedContributor.cs | 17 ++++++++++---- .../Volo.CmsKit.TestBase/CmsKitTestData.cs | 4 ++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Menus/MenuItemAdminAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Menus/MenuItemAdminAppService_Tests.cs index 509070fd7d..9812fe9597 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Menus/MenuItemAdminAppService_Tests.cs +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Menus/MenuItemAdminAppService_Tests.cs @@ -77,6 +77,29 @@ public class MenuItemAdminAppService_Tests : CmsKitApplicationTestBase menu.Url.ShouldBe(newUrl); } + [Fact] + public async Task UpdateAsync_ShouldRemoveRelation_WithoutPageId() + { + var newUrl = "/my-new-url"; + await WithUnitOfWorkAsync(async () => + { + await MenuAdminAppService.UpdateAsync( + TestData.MenuItem_4_With_Page_1_Id, + new MenuItemUpdateInput + { + DisplayName = TestData.MenuItem_4_With_Page_1_Name, + Url = newUrl, + PageId = null + }); + }); + + var menu = await MenuRepository.FindAsync(TestData.MenuItem_4_With_Page_1_Id); + + menu.ShouldNotBeNull(); + menu.Url.ShouldBe(newUrl); + menu.PageId.ShouldBeNull(); + } + [Fact] public async Task DeleteAsync_ShouldWorkProperly_WithExistingId() { diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs index f17a95ddba..a51741bdeb 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs @@ -1,8 +1,9 @@ -using Microsoft.Extensions.Options; +using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Threading.Tasks; +using Microsoft.Extensions.Options; using Volo.Abp.BlobStoring; using Volo.Abp.Data; using Volo.Abp.DependencyInjection; @@ -194,7 +195,8 @@ public class CmsKitDataSeedContributor : IDataSeedContributor, ITransientDepende "comment", null, _cmsKitTestData.User1Id - ){ IdempotencyToken = _cmsKitTestData.IdempotencyToken_1 }); + ) + { IdempotencyToken = _cmsKitTestData.IdempotencyToken_1 }); await _commentRepository.InsertAsync(new Comment(_guidGenerator.Create(), _cmsKitTestData.EntityType1, @@ -416,6 +418,13 @@ public class CmsKitDataSeedContributor : IDataSeedContributor, ITransientDepende private async Task SeedMenusAsync() { + var menuItem4 = await _menuItemRepository.InsertAsync(new MenuItem( + _cmsKitTestData.MenuItem_4_With_Page_1_Id, + _cmsKitTestData.MenuItem_4_With_Page_1_Name, + _cmsKitTestData.Page_1_Slug.EnsureStartsWith('/'))); + + menuItem4.SetPageId(_cmsKitTestData.Page_1_Id); + await _menuItemRepository.InsertManyAsync(new[] { new MenuItem( @@ -429,8 +438,8 @@ public class CmsKitDataSeedContributor : IDataSeedContributor, ITransientDepende new MenuItem( _cmsKitTestData.MenuItem_3_Id, _cmsKitTestData.MenuItem_3_Name, - _cmsKitTestData.MenuItem_3_Url) - + _cmsKitTestData.MenuItem_3_Url), + menuItem4 }); } } diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs index 8c4c07e283..b21e7aab08 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs @@ -128,6 +128,10 @@ public class CmsKitTestData : ISingletonDependency public string MenuItem_3_Url { get; } = "/products"; + public Guid MenuItem_4_With_Page_1_Id { get; } = Guid.NewGuid(); + + public string MenuItem_4_With_Page_1_Name { get; } = "Products"; + public string PollName { get; } = "Poll"; public string WidgetName { get; } = "CmsPollByCode";