Skip to content

Commit

Permalink
fix(client): Fix $Enums namespace in browser build (#20481)
Browse files Browse the repository at this point in the history
* fix(client): Fix $Enums namespace in browser build

$Enums namespace was correctly created for server-side clients, but not
for browser.

Fix #20480

* Snapshots & readme

* Proper test name
  • Loading branch information
SevInf committed Aug 2, 2023
1 parent 05294b3 commit 57d3fbe
Show file tree
Hide file tree
Showing 14 changed files with 76 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const {
const Prisma = {}

exports.Prisma = Prisma
exports.$Enums = {}

/**
* Prisma Client JS version: local
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const {
const Prisma = {}

exports.Prisma = Prisma
exports.$Enums = {}

/**
* Prisma Client JS version: local
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const {
const Prisma = {}

exports.Prisma = Prisma
exports.$Enums = {}

/**
* Prisma Client JS version: local
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const {
const Prisma = {}

exports.Prisma = Prisma
exports.$Enums = {}

/**
* Prisma Client JS version: local
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const {
const Prisma = {}

exports.Prisma = Prisma
exports.$Enums = {}

/**
* Prisma Client JS version: local
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const {
const Prisma = {}

exports.Prisma = Prisma
exports.$Enums = {}

/**
* Prisma Client JS version: local
Expand Down
1 change: 0 additions & 1 deletion packages/client/src/generation/TSClient/TSClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,6 @@ ${buildRequirePath(edge)}
/**
* Enums
*/
exports.$Enums = {}
${this.dmmf.schema.enumTypes.prisma.map((type) => new Enum(type, true).toJS()).join('\n\n')}
${this.dmmf.schema.enumTypes.model?.map((type) => new Enum(type, false).toJS()).join('\n\n') ?? ''}
Expand Down
1 change: 1 addition & 0 deletions packages/client/src/generation/TSClient/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ const {
const Prisma = {}
exports.Prisma = Prisma
exports.$Enums = {}
/**
* Prisma Client JS version: ${clientVersion}
Expand Down
17 changes: 17 additions & 0 deletions packages/client/tests/e2e/browser-enum/_steps.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { $ } from 'zx'

import { executeSteps } from '../_utils/executeSteps'

void executeSteps({
setup: async () => {
await $`pnpm install`
await $`pnpm exec prisma generate`
},
test: async () => {
await $`pnpm exec jest`
},
finish: async () => {
await $`echo "done"`
},
// keep: true, // keep docker open to debug it
})
14 changes: 14 additions & 0 deletions packages/client/tests/e2e/browser-enum/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"private": true,
"version": "0.0.0",
"main": "index.js",
"scripts": {},
"dependencies": {
"@prisma/client": "../prisma-client-0.0.0.tgz"
},
"devDependencies": {
"@types/jest": "29.5.1",
"@types/node": "16.18.11",
"prisma": "../prisma-0.0.0.tgz"
}
}
21 changes: 21 additions & 0 deletions packages/client/tests/e2e/browser-enum/prisma/schema.prisma
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
provider = "prisma-client-js"
}

datasource db {
provider = "postgresql"
url = "postgresql://user@pwd:example.com/db"
}

model User {
id Int @id @default(autoincrement())
role Role
}

enum Role {
USER
ADMIN
}
3 changes: 3 additions & 0 deletions packages/client/tests/e2e/browser-enum/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Readme

Tests if enums are correctly generated within browser bundle
10 changes: 10 additions & 0 deletions packages/client/tests/e2e/browser-enum/tests/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { Role } from '@prisma/client/index-browser'

test('can import enum from browser bundle', () => {
expect(Role).toEqual({
USER: 'USER',
ADMIN: 'ADMIN',
})
})

export {}
4 changes: 4 additions & 0 deletions packages/client/tests/e2e/browser-enum/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"extends": "../tsconfig.base.json",
"exclude": ["_steps.ts"]
}

0 comments on commit 57d3fbe

Please sign in to comment.