Skip to content

Commit

Permalink
fix(gatsby-source-drupal): find mimetype field (#38056)
Browse files Browse the repository at this point in the history
  • Loading branch information
ascorbic committed May 4, 2023
1 parent 38fae7a commit e5e2bb7
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 9 deletions.
11 changes: 11 additions & 0 deletions packages/gatsby-source-drupal/src/__tests__/fixtures/file.json
Expand Up @@ -49,6 +49,17 @@
"value" : "private://forth-image.png"
}
}
},
{
"type": "file--file",
"id": "file-5",
"attributes": {
"id": 5,
"uuid": "file-5",
"filename": "main-image5.png",
"url": "/sites/default/files/main-image5.png",
"mimetype": "image/png"
}
}
],
"links": {}
Expand Down
40 changes: 32 additions & 8 deletions packages/gatsby-source-drupal/src/__tests__/index.js
Expand Up @@ -249,15 +249,15 @@ describe(`gatsby-source-drupal`, () => {
// first call without basicAuth (no fileSystem defined)
// (the first call is actually the 5th because sourceNodes was ran at first with no basicAuth)
expect(createRemoteFileNode).toHaveBeenNthCalledWith(
5,
6,
expect.objectContaining({
url: urls[0],
auth: {},
})
)
// 2nd call with basicAuth (public: fileSystem defined)
expect(createRemoteFileNode).toHaveBeenNthCalledWith(
6,
7,
expect.objectContaining({
url: urls[1],
auth: {
Expand All @@ -268,15 +268,15 @@ describe(`gatsby-source-drupal`, () => {
)
// 3rd call without basicAuth (s3: fileSystem defined)
expect(createRemoteFileNode).toHaveBeenNthCalledWith(
7,
8,
expect.objectContaining({
url: urls[2],
auth: {},
})
)
// 4th call with basicAuth (private: fileSystem defined)
expect(createRemoteFileNode).toHaveBeenNthCalledWith(
8,
9,
expect.objectContaining({
url: urls[3],
auth: {
Expand All @@ -289,14 +289,14 @@ describe(`gatsby-source-drupal`, () => {

it(`Skips File Downloads on initial build`, async () => {
const skipFileDownloads = true
expect(createRemoteFileNode).toBeCalledTimes(8)
expect(createRemoteFileNode).toBeCalledTimes(10)
await sourceNodes(args, { baseUrl, skipFileDownloads })
expect(createRemoteFileNode).toBeCalledTimes(8)
expect(createRemoteFileNode).toBeCalledTimes(10)
})

it(`Skips File Downloads on webhook update`, async () => {
const skipFileDownloads = true
expect(createRemoteFileNode).toBeCalledTimes(8)
expect(createRemoteFileNode).toBeCalledTimes(10)
const nodeToUpdate = require(`./fixtures/webhook-file-update.json`).data

await handleWebhookUpdate(
Expand All @@ -310,7 +310,7 @@ describe(`gatsby-source-drupal`, () => {
}
)

expect(createRemoteFileNode).toBeCalledTimes(8)
expect(createRemoteFileNode).toBeCalledTimes(10)
})

describe(`Update webhook`, () => {
Expand Down Expand Up @@ -641,6 +641,30 @@ describe(`gatsby-source-drupal`, () => {
expect(probeImageSize).toHaveBeenCalled()
})

it(`should generate Image CDN node data when mimetype is on "mimetype" field`, async () => {
// Reset nodes and test includes relationships.
Object.keys(nodes).forEach(key => delete nodes[key])

const options = {
baseUrl,
skipFileDownloads: true,
}

// Call onPreBootstrap to set options
await onPreBootstrap(args, options)
await sourceNodes(args, options)

const fileNode = nodes[createNodeId(`und.file-5`)]
expect(fileNode).toBeDefined()
expect(fileNode.url).toEqual(
`http://fixture/sites/default/files/main-image5.png`
)
expect(fileNode.mimeType).toEqual(`image/png`)
expect(fileNode.width).toEqual(100)
expect(fileNode.height).toEqual(100)
expect(probeImageSize).toHaveBeenCalled()
})

it(`should not generate required Image CDN node data when imageCDN option is set to false`, async () => {
// Reset nodes and test includes relationships.
Object.keys(nodes).forEach(key => delete nodes[key])
Expand Down
2 changes: 1 addition & 1 deletion packages/gatsby-source-drupal/src/normalize.ts
Expand Up @@ -47,7 +47,7 @@ const getGatsbyImageCdnFields = async ({
return {}
}

const mimeType = node.attributes.filemime
const mimeType = node.attributes.filemime || node.attributes.mimetype
const { filename } = node.attributes

if (!mimeType || !filename) {
Expand Down

0 comments on commit e5e2bb7

Please sign in to comment.