diff --git a/packages/desktop-client/README.md b/packages/desktop-client/README.md
index bb300e84d07..2c6572f9fed 100644
--- a/packages/desktop-client/README.md
+++ b/packages/desktop-client/README.md
@@ -42,10 +42,10 @@ Next, navigate to the root of your project folder, run the standartised docker c
```sh
# Run docker container
-docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.40.1-jammy /bin/bash
+docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.37.1-jammy /bin/bash
# If you receive an error such as "docker: invalid reference format", please instead use the following command:
- docker run --rm --network host -v ${pwd}:/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.40.1-jammy /bin/bash
+ docker run --rm --network host -v ${pwd}:/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.37.1-jammy /bin/bash
# Run the VRT tests: important - they MUST be ran against a HTTPS server
E2E_START_URL=https://192.168.0.178:3001 yarn vrt
diff --git a/packages/desktop-client/e2e/accounts.test.js b/packages/desktop-client/e2e/accounts.test.js
index 70179545b5e..45ca7096a28 100644
--- a/packages/desktop-client/e2e/accounts.test.js
+++ b/packages/desktop-client/e2e/accounts.test.js
@@ -14,7 +14,7 @@ test.describe('Accounts', () => {
configurationPage = new ConfigurationPage(page);
await page.goto('/');
- await configurationPage.createDemoFile();
+ await configurationPage.createTestFile();
});
test.afterAll(async () => {
diff --git a/packages/desktop-client/e2e/budget.test.js b/packages/desktop-client/e2e/budget.test.js
index 03781b923f1..630d6d87a76 100644
--- a/packages/desktop-client/e2e/budget.test.js
+++ b/packages/desktop-client/e2e/budget.test.js
@@ -12,7 +12,7 @@ test.describe('Budget', () => {
configurationPage = new ConfigurationPage(page);
await page.goto('/');
- budgetPage = await configurationPage.createDemoFile();
+ budgetPage = await configurationPage.createTestFile();
// Move mouse to corner of the screen;
// sometimes the mouse hovers on a budget element thus rendering an input box
diff --git a/packages/desktop-client/e2e/mobile.test.js b/packages/desktop-client/e2e/mobile.test.js
index fe2b2ba82ca..b67a03e4243 100644
--- a/packages/desktop-client/e2e/mobile.test.js
+++ b/packages/desktop-client/e2e/mobile.test.js
@@ -18,7 +18,7 @@ test.describe('Mobile', () => {
height: 600,
});
await page.goto('/');
- await configurationPage.createDemoFile();
+ await configurationPage.createTestFile();
});
test.afterEach(async () => {
diff --git a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-1-chromium-linux.png b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-1-chromium-linux.png
index 7459bd1a52e..3e749d86c6a 100644
Binary files a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-1-chromium-linux.png and b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-1-chromium-linux.png differ
diff --git a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-2-chromium-linux.png b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-2-chromium-linux.png
index c24d0b8be99..d282442e862 100644
Binary files a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-2-chromium-linux.png and b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-2-chromium-linux.png differ
diff --git a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-3-chromium-linux.png b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-3-chromium-linux.png
index ed62336bdf9..32f89ebccab 100644
Binary files a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-3-chromium-linux.png and b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-3-chromium-linux.png differ
diff --git a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-4-chromium-linux.png b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-4-chromium-linux.png
index b3cea84a41e..0f71093688d 100644
Binary files a/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-4-chromium-linux.png and b/packages/desktop-client/e2e/onboarding.test.js-snapshots/Onboarding-checks-the-page-visuals-4-chromium-linux.png differ
diff --git a/packages/desktop-client/e2e/page-models/configuration-page.js b/packages/desktop-client/e2e/page-models/configuration-page.js
index 828844a6585..3b5e8c6c99e 100644
--- a/packages/desktop-client/e2e/page-models/configuration-page.js
+++ b/packages/desktop-client/e2e/page-models/configuration-page.js
@@ -7,8 +7,8 @@ export class ConfigurationPage {
this.heading = page.getByRole('heading');
}
- async createDemoFile() {
- await this.page.getByRole('button', { name: 'Create demo file' }).click();
+ async createTestFile() {
+ await this.page.getByRole('button', { name: 'Create test file' }).click();
return new BudgetPage(this.page);
}
diff --git a/packages/desktop-client/e2e/reports.test.js b/packages/desktop-client/e2e/reports.test.js
index d9d64c16b39..1dc4b88047a 100644
--- a/packages/desktop-client/e2e/reports.test.js
+++ b/packages/desktop-client/e2e/reports.test.js
@@ -15,7 +15,7 @@ test.describe('Reports', () => {
configurationPage = new ConfigurationPage(page);
await page.goto('/');
- await configurationPage.createDemoFile();
+ await configurationPage.createTestFile();
});
test.afterAll(async () => {
diff --git a/packages/desktop-client/e2e/rules.test.js b/packages/desktop-client/e2e/rules.test.js
index a7465e6f900..4de98db6dfb 100644
--- a/packages/desktop-client/e2e/rules.test.js
+++ b/packages/desktop-client/e2e/rules.test.js
@@ -15,7 +15,7 @@ test.describe('Rules', () => {
configurationPage = new ConfigurationPage(page);
await page.goto('/');
- await configurationPage.createDemoFile();
+ await configurationPage.createTestFile();
});
test.afterAll(async () => {
diff --git a/packages/desktop-client/e2e/schedules.test.js b/packages/desktop-client/e2e/schedules.test.js
index f504613a60a..770f0e6ad77 100644
--- a/packages/desktop-client/e2e/schedules.test.js
+++ b/packages/desktop-client/e2e/schedules.test.js
@@ -15,7 +15,7 @@ test.describe('Schedules', () => {
configurationPage = new ConfigurationPage(page);
await page.goto('/');
- await configurationPage.createDemoFile();
+ await configurationPage.createTestFile();
});
test.afterAll(async () => {
diff --git a/packages/desktop-client/e2e/settings.test.js b/packages/desktop-client/e2e/settings.test.js
index 5ca64155070..bc8029eff46 100644
--- a/packages/desktop-client/e2e/settings.test.js
+++ b/packages/desktop-client/e2e/settings.test.js
@@ -15,7 +15,7 @@ test.describe('Settings', () => {
configurationPage = new ConfigurationPage(page);
await page.goto('/');
- await configurationPage.createDemoFile();
+ await configurationPage.createTestFile();
});
test.afterAll(async () => {
diff --git a/packages/desktop-client/e2e/transactions.test.js b/packages/desktop-client/e2e/transactions.test.js
index 2692d3a1286..2d2f40dbfc1 100644
--- a/packages/desktop-client/e2e/transactions.test.js
+++ b/packages/desktop-client/e2e/transactions.test.js
@@ -15,7 +15,7 @@ test.describe('Transactions', () => {
configurationPage = new ConfigurationPage(page);
await page.goto('/');
- await configurationPage.createDemoFile();
+ await configurationPage.createTestFile();
});
test.afterAll(async () => {
diff --git a/packages/desktop-client/src/components/manager/BudgetList.jsx b/packages/desktop-client/src/components/manager/BudgetList.jsx
index 160ad9d5802..4ca30a41800 100644
--- a/packages/desktop-client/src/components/manager/BudgetList.jsx
+++ b/packages/desktop-client/src/components/manager/BudgetList.jsx
@@ -2,6 +2,7 @@ import React, { useState, useRef } from 'react';
import { useSelector } from 'react-redux';
import * as actions from 'loot-core/src/client/actions';
+import { isNonProductionEnvironment } from 'loot-core/src/shared/environment';
import { useActions } from '../../hooks/useActions';
import { AnimatedLoading } from '../../icons/AnimatedLoading';
@@ -337,14 +338,16 @@ export function BudgetList() {
Create new file
+ {isNonProductionEnvironment() && (
+ )}
);
diff --git a/packages/desktop-client/src/components/manager/ConfigServer.tsx b/packages/desktop-client/src/components/manager/ConfigServer.tsx
index d6fe355d89e..262565dda54 100644
--- a/packages/desktop-client/src/components/manager/ConfigServer.tsx
+++ b/packages/desktop-client/src/components/manager/ConfigServer.tsx
@@ -1,6 +1,9 @@
import React, { useState, useEffect } from 'react';
-import { isElectron } from 'loot-core/src/shared/environment';
+import {
+ isNonProductionEnvironment,
+ isElectron,
+} from 'loot-core/src/shared/environment';
import { useActions } from '../../hooks/useActions';
import { useNavigate } from '../../hooks/useNavigate';
@@ -79,7 +82,7 @@ export function ConfigServer() {
navigate('/');
}
- async function oncreateDemoFile() {
+ async function onCreateTestFile() {
await setServerUrl(null);
await createBudget({ testMode: true });
window.__navigate('/');
@@ -194,13 +197,15 @@ export function ConfigServer() {
Don’t use a server
-
+ {isNonProductionEnvironment() && (
+
+ )}
>
)}
diff --git a/packages/desktop-client/src/components/manager/WelcomeScreen.tsx b/packages/desktop-client/src/components/manager/WelcomeScreen.tsx
index 564fc586717..9d13d9dd242 100644
--- a/packages/desktop-client/src/components/manager/WelcomeScreen.tsx
+++ b/packages/desktop-client/src/components/manager/WelcomeScreen.tsx
@@ -50,8 +50,8 @@ export function WelcomeScreen() {
Get started by importing an existing budget file from Actual or
- another budgeting app, or start fresh with an empty budget. You can
- always create or import another budget later.
+ another budgeting app, create a demo budget file, or start fresh with
+ an empty budget. You can always create or import another budget later.
-
+
+
+
+
);