From 4dc0ff25e98ba1b13adb92892ea7058efc43e414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Orb=C3=A1n?= Date: Thu, 24 Feb 2022 14:49:04 +0100 Subject: [PATCH 1/2] chore(deps): upgrade `dotenv-expand` --- packages/next-env/index.ts | 2 +- packages/next-env/package.json | 2 +- yarn.lock | 11 ++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/next-env/index.ts b/packages/next-env/index.ts index 343e80251879..97df9677629d 100644 --- a/packages/next-env/index.ts +++ b/packages/next-env/index.ts @@ -2,7 +2,7 @@ import * as fs from 'fs' import * as path from 'path' import * as dotenv from 'dotenv' -import dotenvExpand from 'dotenv-expand' +import { expand as dotenvExpand } from 'dotenv-expand' export type Env = { [key: string]: string } export type LoadedEnvFiles = Array<{ diff --git a/packages/next-env/package.json b/packages/next-env/package.json index db48adc5cb07..63cc469fa097 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -31,6 +31,6 @@ "devDependencies": { "@vercel/ncc": "0.33.1", "dotenv": "10.0.0", - "dotenv-expand": "5.1.0" + "dotenv-expand": "8.0.1" } } diff --git a/yarn.lock b/yarn.lock index ca61c9eb0e6a..24d0a9a392ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4060,7 +4060,7 @@ resolved "https://registry.yarnpkg.com/@napi-rs/cli/-/cli-2.4.4.tgz#878a38f0fba1709d89d66eba706745ce728a61a5" integrity sha512-f+tvwCv1ka24dBqI2DgBhR7Oxl3DKHOp4onxLXwyBFt6iCADnr3YZIr1/2Iq5r3uqxFgaf01bfPsRQZPkEp0kQ== -"@napi-rs/triples@^1.0.3", "@napi-rs/triples@1.1.0": +"@napi-rs/triples@1.1.0", "@napi-rs/triples@^1.0.3": version "1.1.0" resolved "https://registry.yarnpkg.com/@napi-rs/triples/-/triples-1.1.0.tgz#88c35b72e79a20b79bb4c9b3e2817241a1c9f4f9" integrity sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w== @@ -9096,10 +9096,10 @@ dot-prop@^6.0.1: dependencies: is-obj "^2.0.0" -dotenv-expand@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== +dotenv-expand@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-8.0.1.tgz#332aa17c14b12e28e2e230f8d183eecc1c014fdc" + integrity sha512-j/Ih7bIERDR5PzI89Zu8ayd3tXZ6E3dbY0ljQ9Db0K87qBO8zdLsi2dIvDHMWtjC3Yxb8XixOTHAtia0fDHRpg== dotenv@10.0.0: version "10.0.0" @@ -14634,6 +14634,7 @@ minipass-fetch@^1.3.0, minipass-fetch@^1.3.2: resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.3.3.tgz#34c7cea038c817a8658461bf35174551dce17a0a" integrity sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ== dependencies: + encoding "^0.1.12" minipass "^3.1.0" minipass-sized "^1.0.3" minizlib "^2.0.0" From 2a691958f4cb21966b29e9ed2f61db6a20c91823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bal=C3=A1zs=20Orb=C3=A1n?= Date: Thu, 24 Feb 2022 14:49:26 +0100 Subject: [PATCH 2/2] test(next/env): make sure default expansion works --- .../dotenv-default-expansion/index.test.ts | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/development/dotenv-default-expansion/index.test.ts diff --git a/test/development/dotenv-default-expansion/index.test.ts b/test/development/dotenv-default-expansion/index.test.ts new file mode 100644 index 000000000000..01b6cd0f9bc3 --- /dev/null +++ b/test/development/dotenv-default-expansion/index.test.ts @@ -0,0 +1,32 @@ +import { createNext } from 'e2e-utils' +import { NextInstance } from 'test/lib/next-modes/base' +import webdriver from 'next-webdriver' + +describe('Dotenv default expansion', () => { + let next: NextInstance + + beforeAll(async () => { + next = await createNext({ + files: { + 'pages/index.js': ` + export default function Page() { + return

{process.env.NEXT_PUBLIC_TEST}

+ } + `, + '.env': ` + NEXT_PUBLIC_TEST=\${MISSING_KEY:-default} + `, + }, + dependencies: {}, + }) + }) + afterAll(() => next.destroy()) + + it('should work', async () => { + const browser = await webdriver(next.appPort, '/') + const text = await browser.elementByCss('p').text() + expect(text).toBe('default') + + await browser.close() + }) +})