diff --git a/packages/create-app/README.md b/packages/create-app/README.md index 22e35fdc00..d5b5039d4e 100644 --- a/packages/create-app/README.md +++ b/packages/create-app/README.md @@ -19,20 +19,6 @@ yarn install yarn backstage-create-app ``` -## Testing Changes Locally - -If you want to be able to test changes to `create-app` locally you can run the following command: - -```sh -./path/to/your/backstage/fork/backstage/packages/create-app/bin/backstage-create-app -``` - -If your fork lives in `~/repos/forks` then it would be: - -```sh -~/repos/forks/backstage/packages/create-app/bin/backstage-create-app -``` - ## Documentation - [Backstage Readme](https://github.com/backstage/backstage/blob/master/README.md) diff --git a/packages/create-app/src/createApp.test.ts b/packages/create-app/src/createApp.test.ts index 02fc068f95..e71fd76fa1 100644 --- a/packages/create-app/src/createApp.test.ts +++ b/packages/create-app/src/createApp.test.ts @@ -57,7 +57,7 @@ describe('command entrypoint', () => { jest.resetAllMocks(); }); - test('should call expected tasks with no `--path` option', async () => { + it('should call expected tasks with no `--path` option', async () => { const cmd = {} as unknown as Command; await createApp(cmd); expect(checkAppExistsMock).toHaveBeenCalled(); @@ -74,7 +74,6 @@ describe('command entrypoint', () => { expect(templatingMock.mock.lastCall?.[1]).toContain( path.join(tmpdir(), 'MyApp'), ); - expect(templatingMock.mock.lastCall?.[3]).toEqual(['packages/app-next/']); expect(moveAppMock).toHaveBeenCalled(); expect(buildAppMock).toHaveBeenCalled(); }); @@ -94,7 +93,6 @@ describe('command entrypoint', () => { ), ); expect(templatingMock.mock.lastCall?.[1]).toEqual('myDirectory'); - expect(templatingMock.mock.lastCall?.[3]).toEqual(['packages/app-next/']); expect(buildAppMock).toHaveBeenCalled(); }); diff --git a/packages/create-app/templates/default-app/packages/app-next/.eslintignore b/packages/create-app/templates/default-app/packages/app-next/.eslintignore deleted file mode 100644 index a48cf0de7a..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index e487f765b2..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/.eslintrc.js.hbs +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = require('@backstage/cli/config/eslint-factory')(__dirname, { - rules: { - '@backstage/no-top-level-material-ui-4-imports': 'error', - }, -}); diff --git a/packages/create-app/templates/default-app/packages/app-next/README.md b/packages/create-app/templates/default-app/packages/app-next/README.md deleted file mode 100644 index 5bd1f2cb92..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# example-app - -This package is an example of a Backstage application using -the [New Frontend System](https://backstage.io/docs/frontend-system/). - -To play with it, open a terminal and run the command: `yarn start` - -**NOTE:** Don't forget to open a second terminal and to launch the backend there, using `yarn start`! The frontend -requires a backend to connect to. 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 deleted file mode 100644 index 839ff883de..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/e2e-tests/app.test.ts +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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 deleted file mode 100644 index d94961ff1b..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/package.json.hbs +++ /dev/null @@ -1,64 +0,0 @@ -{ - "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/canon": "^{{version '@backstage/canon'}}", - "@backstage/cli": "^{{version '@backstage/cli'}}", - "@backstage/frontend-defaults": "^{{version '@backstage/frontend-defaults'}}", - "@backstage/frontend-plugin-api": "^{{version '@backstage/frontend-plugin-api'}}", - "@backstage/plugin-api-docs": "^{{version '@backstage/plugin-api-docs'}}", - "@backstage/plugin-app-visualizer": "^{{version '@backstage/plugin-app-visualizer'}}", - "@backstage/plugin-catalog": "^{{version '@backstage/plugin-catalog'}}", - "@backstage/plugin-catalog-graph": "^{{version '@backstage/plugin-catalog-graph'}}", - "@backstage/plugin-catalog-import": "^{{version '@backstage/plugin-catalog-import'}}", - "@backstage/plugin-home": "^{{version '@backstage/plugin-home'}}", - "@backstage/plugin-kubernetes": "^{{version '@backstage/plugin-kubernetes'}}", - "@backstage/plugin-org": "^{{version '@backstage/plugin-org'}}", - "@backstage/plugin-scaffolder": "^{{version '@backstage/plugin-scaffolder'}}", - "@backstage/plugin-search": "^{{version '@backstage/plugin-search'}}", - "@backstage/plugin-techdocs": "^{{version '@backstage/plugin-techdocs'}}", - "@backstage/plugin-techdocs-module-addons-contrib": "^{{version '@backstage/plugin-techdocs-module-addons-contrib'}}", - "@backstage/plugin-user-settings": "^{{version '@backstage/plugin-user-settings'}}", - "@backstage/theme": "^{{version '@backstage/theme'}}", - "@material-ui/core": "^4.12.2", - "@material-ui/icons": "^4.9.1", - "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/jest-dom": "^6.0.0", - "@types/react": "*", - "@types/react-dom": "*" - }, - "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 deleted file mode 100644 index eec0ae25b9..0000000000 Binary files a/packages/create-app/templates/default-app/packages/app-next/public/android-chrome-192x192.png and /dev/null differ diff --git a/packages/create-app/templates/default-app/packages/app-next/public/android-chrome-512x512.png b/packages/create-app/templates/default-app/packages/app-next/public/android-chrome-512x512.png deleted file mode 100644 index ac0578133b..0000000000 Binary files a/packages/create-app/templates/default-app/packages/app-next/public/android-chrome-512x512.png and /dev/null 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 deleted file mode 100644 index 6a45afb38f..0000000000 Binary files a/packages/create-app/templates/default-app/packages/app-next/public/apple-touch-icon.png and /dev/null 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 deleted file mode 100644 index 58cf61a35e..0000000000 Binary files a/packages/create-app/templates/default-app/packages/app-next/public/favicon-16x16.png and /dev/null 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 deleted file mode 100644 index c0915ece75..0000000000 Binary files a/packages/create-app/templates/default-app/packages/app-next/public/favicon-32x32.png and /dev/null 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 deleted file mode 100644 index 5e45e5dfbd..0000000000 Binary files a/packages/create-app/templates/default-app/packages/app-next/public/favicon.ico and /dev/null differ diff --git a/packages/create-app/templates/default-app/packages/app-next/public/favicon.svg b/packages/create-app/templates/default-app/packages/app-next/public/favicon.svg deleted file mode 100644 index 7f2d375cd8..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/public/favicon.svg +++ /dev/null @@ -1 +0,0 @@ -Backstage favicon \ No newline at end of file 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 deleted file mode 100644 index 63ab0bec0c..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/public/index.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - <%= config.getString('app.title') %> - - <% if (config.has('app.datadogRum')) { %> - - <% } %> - - - - -
- - - diff --git a/packages/create-app/templates/default-app/packages/app-next/public/manifest.json b/packages/create-app/templates/default-app/packages/app-next/public/manifest.json deleted file mode 100644 index 4a7c1b4ec4..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "Backstage", - "name": "Backstage", - "icons": [ - { - "src": "favicon.ico", - "sizes": "48x48", - "type": "image/png" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/packages/create-app/templates/default-app/packages/app-next/public/robots.txt b/packages/create-app/templates/default-app/packages/app-next/public/robots.txt deleted file mode 100644 index 01b0f9a107..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -# https://www.robotstxt.org/robotstxt.html -User-agent: * diff --git a/packages/create-app/templates/default-app/packages/app-next/public/safari-pinned-tab.svg b/packages/create-app/templates/default-app/packages/app-next/public/safari-pinned-tab.svg deleted file mode 100644 index 0f500b3002..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/public/safari-pinned-tab.svg +++ /dev/null @@ -1 +0,0 @@ -Created by potrace 1.11, written by Peter Selinger 2001-2013 \ No newline at end of file diff --git a/packages/create-app/templates/default-app/packages/app-next/src/App.test.tsx b/packages/create-app/templates/default-app/packages/app-next/src/App.test.tsx deleted file mode 100644 index ee456e1d72..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/src/App.test.tsx +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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 { renderWithEffects } from '@backstage/test-utils'; - -// Rarely, and only in windows CI, do these tests take slightly more than the -// default five seconds -jest.setTimeout(15_000); - -describe('App', () => { - it('should render', async () => { - process.env = { - NODE_ENV: 'test', - APP_CONFIG: [ - { - data: { - app: { - title: 'Test', - support: { url: 'http://localhost:7007/support' }, - }, - backend: { baseUrl: 'http://localhost:7007' }, - lighthouse: { - baseUrl: 'http://localhost:3003', - }, - techdocs: { - storageUrl: 'http://localhost:7007/api/techdocs/static/docs', - }, - }, - context: 'test', - }, - ] as any, - }; - - const { default: app } = await import('./App'); - const rendered = await renderWithEffects(app); - expect(rendered.baseElement).toBeInTheDocument(); - }); -}); diff --git a/packages/create-app/templates/default-app/packages/app-next/src/App.tsx b/packages/create-app/templates/default-app/packages/app-next/src/App.tsx deleted file mode 100644 index 5a3611ba65..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/src/App.tsx +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2023 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 { createApp } from '@backstage/frontend-defaults'; -import apiDocsPlugin from '@backstage/plugin-api-docs/alpha'; -import appVisualizerPlugin from '@backstage/plugin-app-visualizer'; -import catalogPlugin from '@backstage/plugin-catalog/alpha'; -import catalogGraphPlugin from '@backstage/plugin-catalog-graph/alpha'; -import catalogImportPlugin from '@backstage/plugin-catalog-import/alpha'; -import homePlugin from '@backstage/plugin-home/alpha'; -import kubernetesPlugin from '@backstage/plugin-kubernetes/alpha'; -import orgPlugin from '@backstage/plugin-org/alpha'; -import scaffolderPlugin from '@backstage/plugin-scaffolder/alpha'; -import searchPlugin from '@backstage/plugin-search/alpha'; -import techdocsPlugin from '@backstage/plugin-techdocs/alpha'; -import userSettingsPlugin from '@backstage/plugin-user-settings/alpha'; - -import { createFrontendModule, PageBlueprint } from '@backstage/frontend-plugin-api'; -import { Navigate } from 'react-router'; - - -// This just defaults to `/catalog` instead of a blank page -const defaultPageExtension = PageBlueprint.make({ - name: 'default', - params: { - defaultPath: '/', - loader: () => Promise.resolve(), - }, -}); - -const app = createApp({ - features: [ - searchPlugin, - orgPlugin, - catalogPlugin, - apiDocsPlugin, - techdocsPlugin, - scaffolderPlugin, - homePlugin, - kubernetesPlugin, - catalogGraphPlugin, - catalogImportPlugin, - appVisualizerPlugin, - userSettingsPlugin, - createFrontendModule({ - pluginId: 'app', - extensions: [ - defaultPageExtension - ], - }), - ], -}); - -export default app.createRoot(); diff --git a/packages/create-app/templates/default-app/packages/app-next/src/index.tsx b/packages/create-app/templates/default-app/packages/app-next/src/index.tsx deleted file mode 100644 index 82b9595c84..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/src/index.tsx +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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 '@backstage/cli/asset-types'; -import ReactDOM from 'react-dom/client'; -import app from './App'; -import '@backstage/canon/css/styles.css'; - -ReactDOM.createRoot(document.getElementById('root')!).render(app); diff --git a/packages/create-app/templates/default-app/packages/app-next/src/setupTests.ts b/packages/create-app/templates/default-app/packages/app-next/src/setupTests.ts deleted file mode 100644 index 23fcbe9676..0000000000 --- a/packages/create-app/templates/default-app/packages/app-next/src/setupTests.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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. - */ - -// jest-dom adds custom jest matchers for asserting on DOM nodes. -// allows you to do things like: -// expect(element).toHaveTextContent(/react/i) -// learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom';