Skip to content

Commit ba961d1

Browse files
fix(deps): upgrade remix and secure npm deps
Amp-Thread-ID: https://ampcode.com/threads/T-019d2ae2-e577-73bd-871a-9424e002ddca Co-authored-by: Amp <amp@ampcode.com>
1 parent 81528aa commit ba961d1

14 files changed

Lines changed: 10697 additions & 13336 deletions

File tree

app/components/__tests__/footer.test.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
import { render, screen } from '@testing-library/react'
2-
import { build, fake } from '@jackfranklin/test-data-bot'
2+
import { build, perBuild } from '@jackfranklin/test-data-bot'
33
import type { FooterProps } from '~/components/footer'
44
import { Footer } from '~/components/footer'
5+
import { mockSlug } from '~/models/__mocks__/mock-data'
56

67
const footerBuilder = build<FooterProps>('Footer', {
78
fields: {
8-
instagramUrl: fake((f) => f.internet.url()),
9+
instagramUrl: perBuild(
10+
() => `https://instagram.com/${mockSlug('rumah-berbagi')}`
11+
),
912
},
1013
})
1114

app/components/__tests__/transaction-item.test.tsx

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,36 @@
1-
import { build, fake, oneOf, perBuild } from '@jackfranklin/test-data-bot'
1+
import { build, perBuild } from '@jackfranklin/test-data-bot'
22
import { screen } from '@testing-library/react'
33
import { TransactionItem, TransactionItemProps } from '../transaction-item'
44
import { render } from '#test/test-utils'
55
import { printLocaleDateTimeString } from '~/utils/format'
66
import { TRANSACTION_STATUS } from '~/models/enum'
77
import { generateId } from '~/utils/nanoid'
8+
import {
9+
mockBankAccountNumber,
10+
mockName,
11+
mockPastDate,
12+
mockSentence,
13+
pick,
14+
randomInt,
15+
} from '~/models/__mocks__/mock-data'
16+
17+
const transactionStatuses = Object.values(TRANSACTION_STATUS)
818

919
const transactionItemBuilder = build<TransactionItemProps>('TransactionItem', {
1020
fields: {
1121
to: perBuild(
1222
() =>
13-
`${generateId()}?status=${oneOf(TRANSACTION_STATUS)}&page=${Math.floor(
14-
Math.random() * 100
23+
`${generateId()}?status=${pick(transactionStatuses)}&page=${randomInt(
24+
1,
25+
100
1526
)}`
1627
),
17-
bankAccountName: fake((f) => f.finance.accountName()),
18-
bankAccountNumber: fake((f) => f.finance.account()),
19-
bankName: fake((f) => f.company.companyName()),
20-
updatedAt: fake((f) => f.date.past()),
21-
status: oneOf(TRANSACTION_STATUS),
22-
notes: fake((f) => f.lorem.sentence()),
28+
bankAccountName: perBuild(() => mockName('Account Holder')),
29+
bankAccountNumber: perBuild(mockBankAccountNumber),
30+
bankName: perBuild(() => mockName('Bank')),
31+
updatedAt: perBuild(mockPastDate),
32+
status: perBuild(() => pick(transactionStatuses)),
33+
notes: perBuild(() => mockSentence('Note')),
2334
},
2435
})
2536
describe('TransactionItem', () => {

app/models/__mocks__/attachment.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
import { build, fake } from '@jackfranklin/test-data-bot'
1+
import { build, perBuild } from '@jackfranklin/test-data-bot'
22
import { Attachment } from '@prisma/client'
3+
import { mockFileUrl, mockSentence } from './mock-data'
34

45
export const attachmentBuilder = build<
56
Omit<Attachment, 'id' | 'createdAt' | 'updatedAt' | 'lessonId'>
67
>({
78
fields: {
8-
name: fake((f) => `${f.lorem.sentence()}.pdf`),
9-
url: fake(
10-
(f) => `https://${f.internet.domainName()}/files/${f.lorem.slug()}.pdf`
11-
),
9+
name: perBuild(() => `${mockSentence('Attachment')}.pdf`),
10+
url: perBuild(() => mockFileUrl('pdf')),
1211
},
1312
traits: {
1413
actual: {

app/models/__mocks__/chapter.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import { build, fake } from '@jackfranklin/test-data-bot'
1+
import { build, perBuild } from '@jackfranklin/test-data-bot'
22
import { Chapter } from '@prisma/client'
3+
import { mockSentence, randomInt } from './mock-data'
34

45
export const chapterBuilder = build<
56
Omit<Chapter, 'id' | 'createdAt' | 'updatedAt' | 'courseId'>
67
>({
78
fields: {
8-
name: fake((f) => f.commerce.productName()),
9-
order: fake((f) => f.datatype.number()),
9+
name: perBuild(() => mockSentence('Chapter')),
10+
order: perBuild(() => randomInt(1, 20)),
1011
},
1112
})

app/models/__mocks__/content.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
1-
import { build, fake, perBuild } from '@jackfranklin/test-data-bot'
1+
import { build, perBuild } from '@jackfranklin/test-data-bot'
22
import { Content } from '@prisma/client'
33
import { CONTENT_TYPES } from '../enum'
4+
import { mockParagraph, mockSentence, mockSlug, randomInt } from './mock-data'
45

56
export const contentBuilder = build<
67
Omit<Content, 'id' | 'createdAt' | 'updatedAt' | 'authorId' | 'courseId'>
78
>({
89
fields: {
9-
slug: fake((f) => f.lorem.slug()),
10-
name: fake((f) => f.lorem.sentence()),
11-
description: fake((f) => f.lorem.paragraphs()),
10+
slug: perBuild(() => mockSlug('content')),
11+
name: perBuild(() => mockSentence('Content')),
12+
description: perBuild(() => mockParagraph('Content description')),
1213
type: perBuild(() => CONTENT_TYPES.VIDEO),
1314
content: 'G3ZS8x86588', // YouTube video ID
14-
order: fake((f) => f.datatype.number({ min: 0, max: 100 })),
15+
order: perBuild(() => randomInt(0, 100)),
1516
},
1617
traits: {
1718
video: {

app/models/__mocks__/course.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
1-
import { build, fake, perBuild } from '@jackfranklin/test-data-bot'
1+
import { build, perBuild } from '@jackfranklin/test-data-bot'
22
import { Course } from '@prisma/client'
33
import { CATEGORIES } from '../enum'
4+
import {
5+
mockImageUrl,
6+
mockParagraph,
7+
mockSentence,
8+
randomInt,
9+
} from './mock-data'
410

511
export const courseBuilder = build<
612
Omit<Course, 'id' | 'userId' | 'authorId' | 'createdAt' | 'updatedAt'>
713
>({
814
fields: {
9-
name: fake((f) => f.commerce.productName()),
10-
description: fake((f) => f.commerce.productDescription()),
11-
price: fake((f) => f.datatype.number({ min: 10000, max: 100000 })),
12-
image: fake((f) => f.image.imageUrl()),
15+
name: perBuild(() => mockSentence('Course')),
16+
description: perBuild(() => mockParagraph('Course description')),
17+
price: perBuild(() => randomInt(10_000, 100_000)),
18+
image: perBuild(mockImageUrl),
1319
category: perBuild(() => CATEGORIES.PARENTING),
1420
},
1521
})

app/models/__mocks__/lesson.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
import { build, fake } from '@jackfranklin/test-data-bot'
1+
import { build, perBuild } from '@jackfranklin/test-data-bot'
22
import { Lesson } from '@prisma/client'
3+
import { mockParagraph, mockSentence, randomInt } from './mock-data'
34

45
export const lessonBuilder = build<
56
Omit<Lesson, 'id' | 'createdAt' | 'updatedAt' | 'chapterId'>
67
>({
78
fields: {
8-
name: fake((f) => f.lorem.sentence()),
9-
description: fake((f) => f.lorem.paragraphs()),
9+
name: perBuild(() => mockSentence('Lesson')),
10+
description: perBuild(() => mockParagraph('Lesson description')),
1011
videoId: 'G3ZS8x86588', // https://www.youtube.com/watch?v=G3ZS8x86588
11-
order: fake((f) => f.datatype.number()),
12+
order: perBuild(() => randomInt(1, 20)),
1213
},
1314
})

app/models/__mocks__/mock-data.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { generateId } from '~/utils/nanoid'
2+
3+
export function randomInt(min = 0, max = 100) {
4+
return Math.floor(Math.random() * (max - min + 1)) + min
5+
}
6+
7+
export function pick<T>(values: readonly T[]) {
8+
return values[randomInt(0, values.length - 1)]
9+
}
10+
11+
export function mockEmail() {
12+
return `user-${generateId()}@example.com`
13+
}
14+
15+
export function mockName(prefix = 'Item') {
16+
return `${prefix} ${generateId()}`
17+
}
18+
19+
export function mockSentence(prefix = 'Item') {
20+
return `${prefix} ${generateId()}`
21+
}
22+
23+
export function mockParagraph(prefix = 'Description') {
24+
return `${prefix} ${generateId()} body copy.`
25+
}
26+
27+
export function mockSlug(prefix = 'item') {
28+
return `${prefix}-${generateId().toLowerCase()}`
29+
}
30+
31+
export function mockFileUrl(extension: string, folder = 'files') {
32+
return `https://example.com/${folder}/${mockSlug(folder)}.${extension}`
33+
}
34+
35+
export function mockImageUrl() {
36+
return `https://images.example.com/${mockSlug('image')}.jpg`
37+
}
38+
39+
export function mockPastDate() {
40+
return new Date(Date.now() - randomInt(1, 30) * 24 * 60 * 60 * 1000)
41+
}
42+
43+
export function mockBankAccountNumber() {
44+
return `${randomInt(10_000_000, 99_999_999)}`
45+
}

app/models/__mocks__/subscription.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { build, oneOf, perBuild } from '@jackfranklin/test-data-bot'
1+
import { build, perBuild } from '@jackfranklin/test-data-bot'
22
import { Subscription } from '@prisma/client'
33
import { SUBSCRIPTION_STATUS } from '../enum'
44

@@ -9,7 +9,7 @@ export const subscriptionBuilder = build<
99
>
1010
>({
1111
fields: {
12-
status: oneOf(SUBSCRIPTION_STATUS.ACTIVE),
12+
status: perBuild(() => SUBSCRIPTION_STATUS.ACTIVE),
1313
},
1414
traits: {
1515
active: {

app/models/__mocks__/transaction.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
import { build, fake, perBuild } from '@jackfranklin/test-data-bot'
1+
import { build, perBuild } from '@jackfranklin/test-data-bot'
22
import { Transaction } from '@prisma/client'
33
import { TRANSACTION_STATUS } from '../enum'
4+
import { mockBankAccountNumber, mockName, randomInt } from './mock-data'
45

56
export const transactionBuilder = build<
67
Omit<
@@ -16,10 +17,10 @@ export const transactionBuilder = build<
1617
>
1718
>({
1819
fields: {
19-
bankName: fake((f) => f.company.companyName()),
20-
bankAccountName: fake((f) => f.name.findName()),
21-
bankAccountNumber: fake((f) => f.phone.phoneNumber()),
22-
amount: fake((f) => f.datatype.number({ min: 10000, max: 100000 })),
20+
bankName: perBuild(() => mockName('Bank')),
21+
bankAccountName: perBuild(() => mockName('Account Holder')),
22+
bankAccountNumber: perBuild(mockBankAccountNumber),
23+
amount: perBuild(() => randomInt(10_000, 100_000)),
2324
status: perBuild(() => TRANSACTION_STATUS.SUBMITTED),
2425
},
2526
traits: {

0 commit comments

Comments
 (0)