fix faker image seed (#8422)

Images now display properly and there is diffent images now

allow to provide url, urls msut be valid in seed

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
This commit is contained in:
Ulf Gebhardt 2025-04-22 13:06:27 +02:00 committed by GitHub
parent c0918f2c35
commit 74b79e0b14
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 36 additions and 47 deletions

View File

@ -102,7 +102,7 @@
},
"devDependencies": {
"@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
"@faker-js/faker": "9.6.0",
"@faker-js/faker": "9.7.0",
"@types/jest": "^29.5.14",
"@types/node": "^22.14.1",
"@typescript-eslint/eslint-plugin": "^5.62.0",

View File

@ -12,7 +12,6 @@ import { Factory } from 'rosie'
import slugify from 'slug'
import { v4 as uuid } from 'uuid'
import CONFIG from '@config/index'
import generateInviteCode from '@schema/resolvers/helpers/generateInviteCode'
import { getDriver, getNeode } from './neo4j'
@ -20,7 +19,7 @@ import { getDriver, getNeode } from './neo4j'
const neode = getNeode()
const uniqueImageUrl = (imageUrl) => {
const newUrl = new URL(imageUrl, CONFIG.CLIENT_URI)
const newUrl = new URL(imageUrl)
newUrl.search = `random=${uuid()}`
return newUrl.toString()
}
@ -60,13 +59,22 @@ Factory.define('badge')
})
Factory.define('image')
.attr('url', faker.image.url)
.attr('aspectRatio', 1.3333333333333333)
.attr('width', 400)
.attr('height', 300)
.attr('blur', 0)
.attr('alt', faker.lorem.sentence)
.attr('type', 'image/jpeg')
.attr('url', null)
.after((buildObject, _options) => {
const { url: imageUrl } = buildObject
if (imageUrl) buildObject.url = uniqueImageUrl(imageUrl)
if (!buildObject.url) {
buildObject.url = faker.image.urlPicsumPhotos({
width: buildObject.width,
height: buildObject.height,
blur: buildObject.blur,
})
}
buildObject.url = uniqueImageUrl(buildObject.url)
buildObject.aspectRatio = buildObject.width / buildObject.height
return neode.create('Image', buildObject)
})

View File

@ -670,9 +670,9 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
categoryIds: ['cat16'],
author: peterLustig,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'food', width: 300, height: 169 }),
width: 300,
height: 169,
sensitive: true,
aspectRatio: 300 / 169,
}),
},
)
@ -686,8 +686,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
categoryIds: ['cat1'],
author: bobDerBaumeister,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'technics', width: 300, height: 1500 }),
aspectRatio: 300 / 1500,
width: 300,
height: 1500,
}),
},
)
@ -734,8 +734,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
categoryIds: ['cat6'],
author: peterLustig,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'city', width: 300, height: 857 }),
aspectRatio: 300 / 857,
width: 300,
height: 857,
}),
},
)
@ -773,8 +773,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
categoryIds: ['cat11'],
author: louie,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'people', width: 300, height: 901 }),
aspectRatio: 300 / 901,
width: 300,
height: 901,
}),
},
)
@ -799,8 +799,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
categoryIds: ['cat14'],
author: jennyRostock,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'abstract', width: 300, height: 200 }),
aspectRatio: 300 / 450,
width: 300,
height: 200,
}),
},
)
@ -859,7 +859,6 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
mutation: createPostMutation(),
variables: {
id: 'p8',
image: faker.image.urlLoremFlickr({ category: 'nature' }),
title: `Quantum Flow Theory explains Quantum Gravity`,
content: hashtagAndMention1,
categoryIds: ['cat8'],
@ -1218,9 +1217,6 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
{
categoryIds: ['cat1'],
author: jennyRostock,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'abstract' }),
}),
},
)
}
@ -1269,9 +1265,6 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
{
categoryIds: ['cat1'],
author: peterLustig,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'city' }),
}),
},
)
}
@ -1320,9 +1313,6 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
{
categoryIds: ['cat1'],
author: dewey,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'food' }),
}),
},
)
}
@ -1371,9 +1361,6 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
{
categoryIds: ['cat1'],
author: louie,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'technics' }),
}),
},
)
}
@ -1422,9 +1409,6 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
{
categoryIds: ['cat1'],
author: bobDerBaumeister,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'people' }),
}),
},
)
}
@ -1473,9 +1457,6 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
{
categoryIds: ['cat1'],
author: huey,
image: Factory.build('image', {
url: faker.image.urlLoremFlickr({ category: 'nature' }),
}),
},
)
}

View File

@ -48,7 +48,7 @@ beforeAll(async () => {
},
{
avatar: Factory.build('image', {
url: '/some/offensive/avatar.jpg',
url: 'http://localhost/some/offensive/avatar.jpg',
}),
},
),
@ -116,7 +116,7 @@ beforeAll(async () => {
},
{
image: Factory.build('image', {
url: '/some/offensive/image.jpg',
url: 'http://localhost/some/offensive/image.jpg',
}),
author: troll,
categoryIds,
@ -278,7 +278,7 @@ describe('softDeleteMiddleware', () => {
expect(subject.about).toEqual('This self description is very offensive'))
it('displays avatar', () =>
expect(subject.avatar).toEqual({
url: expect.stringContaining('/some/offensive/avatar.jpg'),
url: expect.stringMatching('http://localhost/some/offensive/avatar.jpg'),
}))
})
@ -293,7 +293,7 @@ describe('softDeleteMiddleware', () => {
expect(subject.contentExcerpt).toEqual('This is an offensive post content'))
it('displays image', () =>
expect(subject.image).toEqual({
url: expect.stringContaining('/some/offensive/image.jpg'),
url: expect.stringMatching('http://localhost/some/offensive/image.jpg'),
}))
})

View File

@ -47,7 +47,7 @@ describe('deleteImage', () => {
{},
{
avatar: Factory.build('image', {
url: '/some/avatar/url/',
url: 'http://localhost/some/avatar/url/',
alt: 'This is the avatar image of a user',
}),
},
@ -336,7 +336,7 @@ describe('mergeImage', () => {
),
image: Factory.build('image', {
alt: 'This is the previous, not updated image',
url: '/some/original/url',
url: 'http://localhost/some/original/url',
}),
},
)

View File

@ -1468,7 +1468,7 @@ describe('DeletePost', () => {
},
{
image: Factory.build('image', {
url: 'path/to/some/image',
url: 'http://localhost/path/to/some/image',
}),
author,
categoryIds,

View File

@ -1143,10 +1143,10 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2"
integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==
"@faker-js/faker@9.6.0":
version "9.6.0"
resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-9.6.0.tgz#64235d20330b142eef3d1d1638ba56c083b4bf1d"
integrity sha512-3vm4by+B5lvsFPSyep3ELWmZfE3kicDtmemVpuwl1yH7tqtnHdsA6hG8fbXedMVdkzgtvzWoRgjSB4Q+FHnZiw==
"@faker-js/faker@9.7.0":
version "9.7.0"
resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-9.7.0.tgz#1cf1fecfcad5e2da2332140bf3b5f23cc1c2a7f4"
integrity sha512-aozo5vqjCmDoXLNUJarFZx2IN/GgGaogY4TMJ6so/WLZOWpSV7fvj2dmrV6sEAnUm1O7aCrhTibjpzeDFgNqbg==
"@graphql-toolkit/common@0.10.4":
version "0.10.4"