Skip to content

Commit

Permalink
refactor(tests): use setupTestWrapper, maybe fix hang?
Browse files Browse the repository at this point in the history
  • Loading branch information
damassi committed May 4, 2023
1 parent 074a4a3 commit 8097fe0
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 61 deletions.
44 changes: 14 additions & 30 deletions src/app/Scenes/Sale/BuyNowArtworksRail.tests.tsx
Original file line number Diff line number Diff line change
@@ -1,50 +1,34 @@
import { BuyNowArtworksRailTestsQuery } from "__generated__/BuyNowArtworksRailTestsQuery.graphql"
import { renderWithWrappers } from "app/utils/tests/renderWithWrappers"
import { resolveMostRecentRelayOperation } from "app/utils/tests/resolveMostRecentRelayOperation"
import { graphql, QueryRenderer } from "react-relay"
import { createMockEnvironment } from "relay-test-utils"
import { setupTestWrapper } from "app/utils/tests/setupTestWrapper"
import { graphql } from "react-relay"
import { BuyNowArtworksRailContainer } from "./Components/BuyNowArtworksRail"

describe("BuyNowArtworksRail", () => {
let mockEnvironment: ReturnType<typeof createMockEnvironment>
const TestRenderer = () => (
<QueryRenderer<BuyNowArtworksRailTestsQuery>
environment={mockEnvironment}
query={graphql`
query BuyNowArtworksRailTestsQuery($id: String!) @relay_test_operation {
sale(id: $id) {
...BuyNowArtworksRail_sale
}
const { renderWithRelay } = setupTestWrapper({
Component: BuyNowArtworksRailContainer,
query: graphql`
query BuyNowArtworksRailTestsQuery($id: String!) @relay_test_operation {
sale(id: $id) {
...BuyNowArtworksRail_sale
}
`}
variables={{ id: "sale-id" }}
render={({ props }) => {
if (props?.sale) {
return <BuyNowArtworksRailContainer sale={props.sale} />
}
return null
}}
/>
)
beforeEach(() => {
mockEnvironment = createMockEnvironment()
}
`,
variables: { id: "sale-id" },
})

it(`renders title "Buy now"`, () => {
const { getByText } = renderWithWrappers(<TestRenderer />)
resolveMostRecentRelayOperation(mockEnvironment, mockProps)
const { getByText } = renderWithRelay(mockProps)
expect(getByText("Artworks Available to Buy Now")).toBeDefined()
})

it("renders nothing if there are no artworks", () => {
const { queryAllByTestId } = renderWithWrappers(<TestRenderer />)
const noArtworksProps = {
Sale: () => ({
saleArtworksConnection: {
edges: [],
},
}),
}
resolveMostRecentRelayOperation(mockEnvironment, noArtworksProps)
const { queryAllByTestId } = renderWithRelay(noArtworksProps)
expect(queryAllByTestId("bnmo-rail-wrapper")).toHaveLength(0)
})
})
Expand Down
46 changes: 15 additions & 31 deletions src/app/Scenes/Sale/Components/NewBuyNowArtworksRail.tests.tsx
Original file line number Diff line number Diff line change
@@ -1,53 +1,37 @@
import { screen } from "@testing-library/react-native"
import { NewBuyNowArtworksRailTestsQuery } from "__generated__/NewBuyNowArtworksRailTestsQuery.graphql"
import { renderWithWrappers } from "app/utils/tests/renderWithWrappers"
import { resolveMostRecentRelayOperation } from "app/utils/tests/resolveMostRecentRelayOperation"
import { graphql, QueryRenderer } from "react-relay"
import { createMockEnvironment } from "relay-test-utils"
import { setupTestWrapper } from "app/utils/tests/setupTestWrapper"
import { graphql } from "react-relay"
import { NewBuyNowArtworksRailContainer } from "./NewBuyNowArtworksRail"

describe("NewBuyNowArtworksRail", () => {
let mockEnvironment: ReturnType<typeof createMockEnvironment>
const TestRenderer = () => (
<QueryRenderer<NewBuyNowArtworksRailTestsQuery>
environment={mockEnvironment}
query={graphql`
query NewBuyNowArtworksRailTestsQuery($id: String!) @relay_test_operation {
sale(id: $id) {
...NewBuyNowArtworksRail_sale
}
const { renderWithRelay } = setupTestWrapper({
Component: NewBuyNowArtworksRailContainer,
query: graphql`
query NewBuyNowArtworksRailTestsQuery($id: String!) @relay_test_operation {
sale(id: $id) {
...NewBuyNowArtworksRail_sale
}
`}
variables={{ id: "sale-id" }}
render={({ props }) => {
if (props?.sale) {
return <NewBuyNowArtworksRailContainer sale={props.sale} />
}
return null
}}
/>
)
beforeEach(() => {
mockEnvironment = createMockEnvironment()
}
`,
variables: { id: "sale-id" },
})
it(`renders "Buy now" rail and artworks`, () => {
renderWithWrappers(<TestRenderer />)
resolveMostRecentRelayOperation(mockEnvironment, mockProps)

it(`renders "Buy now" rail and artworks`, () => {
renderWithRelay(mockProps)
expect(screen.queryByText("Artworks Available to Buy Now")).toBeDefined()
expect(screen.queryAllByText("Best artwork ever, 2019")).toBeDefined()
})

it("renders nothing if there are no artworks", () => {
const { queryAllByTestId } = renderWithWrappers(<TestRenderer />)
const noArtworksProps = {
Sale: () => ({
artworksConnection: {
edges: [],
},
}),
}
resolveMostRecentRelayOperation(mockEnvironment, noArtworksProps)

const { queryAllByTestId } = renderWithRelay(noArtworksProps)
expect(queryAllByTestId("bnmo-rail-wrapper")).toHaveLength(0)
})
})
Expand Down

0 comments on commit 8097fe0

Please sign in to comment.