diff --git a/packages/e2e-tests/test-applications/.gitignore b/packages/e2e-tests/test-applications/.gitignore new file mode 100644 index 000000000000..f955bf36ab0c --- /dev/null +++ b/packages/e2e-tests/test-applications/.gitignore @@ -0,0 +1 @@ +!*.d.ts diff --git a/packages/e2e-tests/test-applications/create-react-app/.gitignore b/packages/e2e-tests/test-applications/create-react-app/.gitignore index a8c4a72a614d..a6856a75e8b4 100644 --- a/packages/e2e-tests/test-applications/create-react-app/.gitignore +++ b/packages/e2e-tests/test-applications/create-react-app/.gitignore @@ -22,5 +22,4 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -!*.d.ts yarn.lock diff --git a/packages/e2e-tests/test-applications/vue-vite-app/.gitignore b/packages/e2e-tests/test-applications/vue-vite-app/.gitignore new file mode 100644 index 000000000000..130c8bcc5450 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/.gitignore @@ -0,0 +1,27 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +yarn.lock +package-lock.json diff --git a/packages/e2e-tests/test-applications/vue-vite-app/.npmrc b/packages/e2e-tests/test-applications/vue-vite-app/.npmrc new file mode 100644 index 000000000000..c6b3ef9b3eaa --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/.npmrc @@ -0,0 +1,2 @@ +@sentry:registry=http://localhost:4873 +@sentry-internal:registry=http://localhost:4873 diff --git a/packages/e2e-tests/test-applications/vue-vite-app/README.md b/packages/e2e-tests/test-applications/vue-vite-app/README.md new file mode 100644 index 000000000000..30b15e215a24 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/README.md @@ -0,0 +1,16 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/packages/e2e-tests/test-applications/vue-vite-app/package.json b/packages/e2e-tests/test-applications/vue-vite-app/package.json new file mode 100644 index 000000000000..d6df60fdd7db --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/package.json @@ -0,0 +1,22 @@ +{ + "name": "vue-vite-app", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@sentry/vue": "*", + "@sentry/tracing": "*", + "vue": "^3.2.37" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^3.1.0", + "typescript": "^4.6.4", + "vite": "^3.1.0", + "vue-tsc": "^0.40.4" + } +} diff --git a/packages/e2e-tests/test-applications/vue-vite-app/public/vite.svg b/packages/e2e-tests/test-applications/vue-vite-app/public/vite.svg new file mode 100644 index 000000000000..e7b8dfb1b2a6 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/e2e-tests/test-applications/vue-vite-app/src/App.vue b/packages/e2e-tests/test-applications/vue-vite-app/src/App.vue new file mode 100644 index 000000000000..76ebf08602f4 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/src/App.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/packages/e2e-tests/test-applications/vue-vite-app/src/assets/vue.svg b/packages/e2e-tests/test-applications/vue-vite-app/src/assets/vue.svg new file mode 100644 index 000000000000..770e9d333ee7 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/e2e-tests/test-applications/vue-vite-app/src/components/HelloWorld.vue b/packages/e2e-tests/test-applications/vue-vite-app/src/components/HelloWorld.vue new file mode 100644 index 000000000000..5230910336b4 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/src/components/HelloWorld.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/packages/e2e-tests/test-applications/vue-vite-app/src/main.ts b/packages/e2e-tests/test-applications/vue-vite-app/src/main.ts new file mode 100644 index 000000000000..eefe5f06f3b6 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/src/main.ts @@ -0,0 +1,20 @@ +import { createApp } from 'vue'; +import './style.css'; +import App from './App.vue'; + +import * as Sentry from '@sentry/vue'; +import { BrowserTracing } from '@sentry/tracing'; + +const app = createApp(App); + +Sentry.init({ + app, + dsn: 'https://8308099df418455f9845cb7719b70590@o172566.ingest.sentry.io/1870657', + integrations: [new BrowserTracing()], + // Set tracesSampleRate to 1.0 to capture 100% + // of transactions for performance monitoring. + // We recommend adjusting this value in production + tracesSampleRate: 1.0, +}); + +app.mount('#app'); diff --git a/packages/e2e-tests/test-applications/vue-vite-app/src/style.css b/packages/e2e-tests/test-applications/vue-vite-app/src/style.css new file mode 100644 index 000000000000..0192f9aac987 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/src/style.css @@ -0,0 +1,81 @@ +:root { + font-family: Inter, Avenir, Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 24px; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -webkit-text-size-adjust: 100%; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/packages/e2e-tests/test-applications/vue-vite-app/src/vite-env.d.ts b/packages/e2e-tests/test-applications/vue-vite-app/src/vite-env.d.ts new file mode 100644 index 000000000000..323c78a6cd85 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/src/vite-env.d.ts @@ -0,0 +1,7 @@ +/// + +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/packages/e2e-tests/test-applications/vue-vite-app/test-recipe.json b/packages/e2e-tests/test-applications/vue-vite-app/test-recipe.json new file mode 100644 index 000000000000..bc2cdc6dbd03 --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/test-recipe.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../test-recipe-schema.json", + "testApplicationName": "Typescript Vue + Vite App", + "buildCommand": "yarn install --no-lockfile && yarn build", + "tests": [] +} diff --git a/packages/e2e-tests/test-applications/vue-vite-app/tsconfig.json b/packages/e2e-tests/test-applications/vue-vite-app/tsconfig.json new file mode 100644 index 000000000000..d4aefa2c929d --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "moduleResolution": "Node", + "strict": true, + "jsx": "preserve", + "sourceMap": true, + "resolveJsonModule": true, + "isolatedModules": true, + "esModuleInterop": true, + "lib": ["ESNext", "DOM"], + "skipLibCheck": true + }, + "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/packages/e2e-tests/test-applications/vue-vite-app/tsconfig.node.json b/packages/e2e-tests/test-applications/vue-vite-app/tsconfig.node.json new file mode 100644 index 000000000000..9d31e2aed93c --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/e2e-tests/test-applications/vue-vite-app/vite.config.ts b/packages/e2e-tests/test-applications/vue-vite-app/vite.config.ts new file mode 100644 index 000000000000..315212d69a7b --- /dev/null +++ b/packages/e2e-tests/test-applications/vue-vite-app/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()] +})