diff --git a/packages/create-app/src/lib/tasks.test.ts b/packages/create-app/src/lib/tasks.test.ts index 53cad8b9d7..c5d5092410 100644 --- a/packages/create-app/src/lib/tasks.test.ts +++ b/packages/create-app/src/lib/tasks.test.ts @@ -267,7 +267,7 @@ describe('tasks', () => { }); describe('templatingTask', () => { - it('should generate a project and populate context parameters', async () => { + it('should generate a project populating context parameters', async () => { const templateDir = resolvePath(__dirname, '../../templates/default-app'); const destinationDir = 'templatedApp'; const context = { @@ -291,20 +291,6 @@ describe('tasks', () => { fs.readFile('templatedApp/packages/backend/package.json', 'utf-8'), ).resolves.toContain('sqlite3"'); }); - - it('should generate a project and skip excluded directories', async () => { - const templateDir = resolvePath(__dirname, '../../templates/default-app'); - const destinationDir = 'templatedApp'; - const context = { name: 'Backstage', dbTypeSqlite: true }; - const excludedDirs = ['packages/app-next']; - await templatingTask(templateDir, destinationDir, context, excludedDirs); - expect(fs.existsSync('templatedApp/packages/app/package.json')).toBe( - true, - ); - expect(fs.existsSync('templatedApp/packages/app-next/package.json')).toBe( - false, - ); - }); }); describe('readGitConfig', () => { diff --git a/packages/create-app/templates/default-app/packages/app-next/.eslintignore b/packages/create-app/templates/default-app/packages/app-next/.eslintignore new file mode 100644 index 0000000000..a48cf0de7a --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app-next/.eslintignore @@ -0,0 +1 @@ +public diff --git a/packages/create-app/templates/default-app/packages/app-next/.eslintrc.js.hbs b/packages/create-app/templates/default-app/packages/app-next/.eslintrc.js.hbs new file mode 100644 index 0000000000..e2a53a6ad2 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app-next/.eslintrc.js.hbs @@ -0,0 +1 @@ +module.exports = require('@backstage/cli/config/eslint-factory')(__dirname); diff --git a/packages/create-app/templates/default-app/packages/app-next/e2e-tests/app.test.ts b/packages/create-app/templates/default-app/packages/app-next/e2e-tests/app.test.ts new file mode 100644 index 0000000000..839ff883de --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app-next/e2e-tests/app.test.ts @@ -0,0 +1,27 @@ +/* + * Copyright 2020 The Backstage Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { test, expect } from '@playwright/test'; + +test('App should render the welcome page', async ({ page }) => { + await page.goto('/'); + + const enterButton = page.getByRole('button', { name: 'Enter' }); + await expect(enterButton).toBeVisible(); + await enterButton.click(); + + await expect(page.getByText('My Company Catalog')).toBeVisible(); +}); diff --git a/packages/create-app/templates/default-app/packages/app-next/package.json.hbs b/packages/create-app/templates/default-app/packages/app-next/package.json.hbs new file mode 100644 index 0000000000..0a0458cbc2 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app-next/package.json.hbs @@ -0,0 +1,49 @@ +{ + "name": "app", + "version": "0.0.0", + "private": true, + "bundled": true, + "backstage": { + "role": "frontend" + }, + "scripts": { + "start": "backstage-cli package start", + "build": "backstage-cli package build", + "clean": "backstage-cli package clean", + "test": "backstage-cli package test", + "lint": "backstage-cli package lint" + }, + "dependencies": { + "@backstage/frontend-defaults": "^{{version '@backstage/app-defaults'}}", + "@backstage/plugin-catalog": "^{{version '@backstage/plugin-catalog'}}", + "react": "^18.0.2", + "react-dom": "^18.0.2", + "react-router": "^6.3.0", + "react-router-dom": "^6.3.0" + }, + "devDependencies": { + "@backstage/test-utils": "^{{version '@backstage/test-utils'}}", + "@playwright/test": "^1.32.3", + "@testing-library/dom": "^9.0.0", + "@testing-library/jest-dom": "^6.0.0", + "@testing-library/react": "^14.0.0", + "@testing-library/user-event": "^14.0.0", + "@types/react-dom": "*", + "cross-env": "^7.0.0" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "files": [ + "dist" + ] +} diff --git a/packages/create-app/templates/default-app/packages/app-next/public/android-chrome-192x192.png b/packages/create-app/templates/default-app/packages/app-next/public/android-chrome-192x192.png new file mode 100644 index 0000000000..eec0ae25b9 Binary files /dev/null and b/packages/create-app/templates/default-app/packages/app-next/public/android-chrome-192x192.png differ diff --git a/packages/create-app/templates/default-app/packages/app-next/public/apple-touch-icon.png b/packages/create-app/templates/default-app/packages/app-next/public/apple-touch-icon.png new file mode 100644 index 0000000000..3158830ac7 Binary files /dev/null and b/packages/create-app/templates/default-app/packages/app-next/public/apple-touch-icon.png differ diff --git a/packages/create-app/templates/default-app/packages/app-next/public/favicon-16x16.png b/packages/create-app/templates/default-app/packages/app-next/public/favicon-16x16.png new file mode 100644 index 0000000000..58cf61a35e Binary files /dev/null and b/packages/create-app/templates/default-app/packages/app-next/public/favicon-16x16.png differ diff --git a/packages/create-app/templates/default-app/packages/app-next/public/favicon-32x32.png b/packages/create-app/templates/default-app/packages/app-next/public/favicon-32x32.png new file mode 100644 index 0000000000..c0915ece75 Binary files /dev/null and b/packages/create-app/templates/default-app/packages/app-next/public/favicon-32x32.png differ diff --git a/packages/create-app/templates/default-app/packages/app-next/public/favicon.ico b/packages/create-app/templates/default-app/packages/app-next/public/favicon.ico new file mode 100644 index 0000000000..5e45e5dfbd Binary files /dev/null and b/packages/create-app/templates/default-app/packages/app-next/public/favicon.ico differ diff --git a/packages/create-app/templates/default-app/packages/app-next/public/index.html b/packages/create-app/templates/default-app/packages/app-next/public/index.html new file mode 100644 index 0000000000..18da7c4773 --- /dev/null +++ b/packages/create-app/templates/default-app/packages/app-next/public/index.html @@ -0,0 +1,60 @@ + + +
+ + + + + + + + + + + + +