From 29ee91b4cca7abf2dd4e185e7c5967ed4682635a Mon Sep 17 00:00:00 2001 From: Cobey Potter Date: Wed, 5 Jun 2024 15:18:00 -0400 Subject: [PATCH] Adds tests for series of GETs to test api / slug creation --- __tests__/butter.test.js | 50 ++++++++++++++++++++++++++++++++++++++++ mocks/handlers.js | 6 +++++ 2 files changed, 56 insertions(+) diff --git a/__tests__/butter.test.js b/__tests__/butter.test.js index 22281c2..b5b8386 100644 --- a/__tests__/butter.test.js +++ b/__tests__/butter.test.js @@ -21,6 +21,13 @@ test( await expect(response.data.slug).toEqual("example-news-page") await expect(response.data.page_type).not.toEqual("sport") + // ensure we can get the page with the real page type attached + const response2 = await butter.page.retrieve('news', 'example-news-page') + + await expect(response2.data.fields.headline).toEqual("This is an example news page"); + await expect(response2.data.slug).toEqual("example-news-page") + await expect(response2.data.page_type).not.toEqual("sport") + return } ); @@ -43,6 +50,22 @@ test( await expect(error.message).toEqual("TypeError: Failed to fetch"); } + + try { + const singlePageResponse2 = await butter.page.retrieve( + "*/about", + "example-news-page", + { + "locale": "en", + "preview": 1 + } + ) + } + catch (error) { + await expect(error).toBeInstanceOf(Error); + await expect(error.message).toEqual("TypeError: Failed to fetch"); + + } return @@ -63,6 +86,33 @@ test( await expect(firstPage).toHaveProperty('fields.title', 'This is a single page'); await expect(firstPage).not.toHaveProperty('date_time'); + + return + } +) + +test( + "should list pages by single-pages and then retrieve a pageTyped page", + async () => { + const response = await butter.page.list('*') + + await expect(response.meta.count).toEqual(2); + await expect(response.data).toHaveLength(2); + + const firstPage = response.data[0]; + + await expect(firstPage).toHaveProperty('slug', 'single-page-1'); + await expect(firstPage).toHaveProperty('fields.title', 'This is a single page'); + + await expect(firstPage).not.toHaveProperty('date_time'); + + const response2 = await butter.page.retrieve('news', 'example-news-page') + + await expect(response2.data.fields.headline).toEqual("This is an example news page"); + await expect(response2.data.slug).toEqual("example-news-page") + await expect(response2.data.page_type).not.toEqual("sport") + + return } ) diff --git a/mocks/handlers.js b/mocks/handlers.js index dd0b88b..0b28ef8 100644 --- a/mocks/handlers.js +++ b/mocks/handlers.js @@ -12,6 +12,11 @@ const failedSinglePostHandler = http.get( () => HttpResponse.error("Failed to fetch") ) +const failedSinglePostWithGlobHandler = http.get( + "https://api.buttercms.com/v2/pages/*/about/fake-post-slug/", + () => HttpResponse.error("Failed to fetch") +) + const listPageHandlerError = http.get( "https://api.buttercms.com/v2/pages/as/", () => HttpResponse.json( @@ -34,6 +39,7 @@ const listPageHandler = http.get( export default [ singlePostHandler, failedSinglePostHandler, + failedSinglePostWithGlobHandler, listPageHandlerError, listPageHandler, ];