From 98a4b12b21f8a0feabf2d915ee1df3bb79b30648 Mon Sep 17 00:00:00 2001 From: Halo Dev Bot <87291978+halo-dev-bot@users.noreply.github.com> Date: Fri, 10 May 2024 13:36:24 +0800 Subject: [PATCH] [release-2.15] fix: changes to Unstructured metadata do not take effect (#5881) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is an automated cherry-pick of #5880 /assign JohnNiang ```release-note 修复插件定义的权限没有在插件详情页显示的问题 ``` --- .../run/halo/app/extension/Unstructured.java | 7 +---- .../halo/app/extension/UnstructuredTest.java | 30 ++++++++++++++++++- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/api/src/main/java/run/halo/app/extension/Unstructured.java b/api/src/main/java/run/halo/app/extension/Unstructured.java index 2d3a07821..2ea80b5c5 100644 --- a/api/src/main/java/run/halo/app/extension/Unstructured.java +++ b/api/src/main/java/run/halo/app/extension/Unstructured.java @@ -220,12 +220,7 @@ public class Unstructured implements Extension { public static Optional> getNestedStringStringMap(Map map, String... fields) { return getNestedValue(map, fields) - .map(labelsObj -> { - var labels = (Map) labelsObj; - var result = new HashMap(); - labels.forEach((key, value) -> result.put((String) key, (String) value)); - return result; - }); + .map(labelsObj -> (Map) labelsObj); } public static Optional getNestedInstant(Map map, String... fields) { diff --git a/application/src/test/java/run/halo/app/extension/UnstructuredTest.java b/application/src/test/java/run/halo/app/extension/UnstructuredTest.java index 808ac6608..8db9b0449 100644 --- a/application/src/test/java/run/halo/app/extension/UnstructuredTest.java +++ b/application/src/test/java/run/halo/app/extension/UnstructuredTest.java @@ -2,6 +2,7 @@ package run.halo.app.extension; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; import static run.halo.app.extension.MetadataOperator.metadataDeepEquals; @@ -98,10 +99,37 @@ class UnstructuredTest { } @Test - void shouldGetFinalizersCorrectly() throws JsonProcessingException, JSONException { + void shouldGetFinalizersCorrectly() throws JsonProcessingException { var extension = objectMapper.readValue(extensionJson, Unstructured.class); assertEquals(Set.of("finalizer.1", "finalizer.2"), extension.getMetadata().getFinalizers()); + + extension.getMetadata().setFinalizers(Set.of("finalizer.3", "finalizer.4")); + assertEquals(Set.of("finalizer.3", "finalizer.4"), extension.getMetadata().getFinalizers()); + } + + @Test + void shouldSetLabelsCorrectly() throws JsonProcessingException { + var extension = objectMapper.readValue(extensionJson, Unstructured.class); + + assertEquals(Map.of("category", "fake", "default", "true"), + extension.getMetadata().getLabels()); + + extension.getMetadata().setLabels(Map.of("category", "fake", "default", "false")); + assertEquals(Map.of("category", "fake", "default", "false"), + extension.getMetadata().getLabels()); + } + + @Test + void shouldSetAnnotationsCorrectly() throws JsonProcessingException { + var extension = objectMapper.readValue(extensionJson, Unstructured.class); + + assertNull(extension.getMetadata().getAnnotations()); + + extension.getMetadata() + .setAnnotations(Map.of("annotation1", "value1", "annotation2", "value2")); + assertEquals(Map.of("annotation1", "value1", "annotation2", "value2"), + extension.getMetadata().getAnnotations()); } Unstructured createUnstructured() {