From 33921541211788ccc91c8d4e747220de330e415d Mon Sep 17 00:00:00 2001 From: Mounir Dhahri Date: Wed, 21 Aug 2024 16:30:25 +0200 Subject: [PATCH] fix: show edit artwork button (#10635) * fix: show edit artwork button * chore: address review comments --- .secrets.baseline | 6 +-- .../Artwork/MyCollectionArtwork.tests.tsx | 47 ++++++++++++++++++- .../Screens/Artwork/MyCollectionArtwork.tsx | 7 ++- .../MyCollectionArtworkForm.tests.tsx | 1 + 4 files changed, 54 insertions(+), 7 deletions(-) diff --git a/.secrets.baseline b/.secrets.baseline index eb62d1ee80d..355422db904 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -396,14 +396,14 @@ "filename": "src/app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm.tests.tsx", "hashed_secret": "67d1be5993e49fbaba0bbd38492c33a2bc007ef7", "is_verified": false, - "line_number": 624 + "line_number": 625 }, { "type": "Base64 High Entropy String", "filename": "src/app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm.tests.tsx", "hashed_secret": "6414700358f2ae5762917a164e2e30df8783fc4e", "is_verified": false, - "line_number": 710 + "line_number": 711 } ], "src/app/Scenes/MyCollection/Screens/Insights/SelectArtist.tests.tsx": [ @@ -1134,5 +1134,5 @@ } ] }, - "generated_at": "2024-08-07T08:22:24Z" + "generated_at": "2024-08-21T08:03:56Z" } diff --git a/src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tests.tsx b/src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tests.tsx index 3b448538167..2928aeef6e4 100644 --- a/src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tests.tsx +++ b/src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tests.tsx @@ -1,3 +1,4 @@ +import { screen } from "@testing-library/react-native" import { getMockRelayEnvironment } from "app/system/relay/defaultEnvironment" import { renderWithHookWrappersTL } from "app/utils/tests/renderWithWrappers" import { resolveMostRecentRelayOperation } from "app/utils/tests/resolveMostRecentRelayOperation" @@ -7,7 +8,7 @@ const mockEnvironment = getMockRelayEnvironment() describe("My Collection Artwork", () => { it("show new artwork screen ", () => { - const { getByTestId } = renderWithHookWrappersTL( + renderWithHookWrappersTL( { ) resolveMostRecentRelayOperation(mockEnvironment) - expect(() => getByTestId("my-collection-artwork")).toBeTruthy() + expect(() => screen.getByTestId("my-collection-artwork")).toBeTruthy() + }) + + describe("Edit button", () => { + it("should be visible when consignmentSubmission is available", () => { + renderWithHookWrappersTL( + , + mockEnvironment + ) + + resolveMostRecentRelayOperation(mockEnvironment, { + Artwork: () => ({ + consignmentSubmission: { + internalID: "submission-id", + }, + }), + }) + expect(screen.getByText("Edit")).toBeOnTheScreen() + }) + + it("should be visible when consignmentSubmission is not available", () => { + renderWithHookWrappersTL( + , + mockEnvironment + ) + + resolveMostRecentRelayOperation(mockEnvironment, { + Artwork: () => ({ + consignmentSubmission: null, + }), + }) + expect(() => screen.getByText("Edit")).toThrow() + }) }) }) diff --git a/src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tsx b/src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tsx index 46423f56421..f5a4da354ef 100644 --- a/src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tsx +++ b/src/app/Scenes/MyCollection/Screens/Artwork/MyCollectionArtwork.tsx @@ -87,12 +87,14 @@ const MyCollectionArtwork: React.FC = ({ const articles = extractNodes(artwork.artist?.articles) + const isEditable = !!artwork.consignmentSubmission?.internalID + return ( - !artwork.consignmentSubmission && ( + rightElements={ + !!isEditable && ( Edit @@ -271,6 +273,7 @@ export const ArtworkMetaProps = graphql` # needed to show the banner inside the edit artwork view # TODO: move logic to the edit artwork view https://artsyproduct.atlassian.net/browse/CX-2846 consignmentSubmission @optionalField { + internalID displayText } pricePaid { diff --git a/src/app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm.tests.tsx b/src/app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm.tests.tsx index af9912506b8..a83af45dbb4 100644 --- a/src/app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm.tests.tsx +++ b/src/app/Scenes/MyCollection/Screens/ArtworkForm/MyCollectionArtworkForm.tests.tsx @@ -481,6 +481,7 @@ describe("MyCollectionArtworkForm", () => { confidentialNotes: "some-notes", consignmentSubmission: { displayText: "In progress", + internalID: "submission-id", }, dimensions: { in: "23",