From 31f505dfa6974ce9b6b8c3bfbb3bbeb45f6da3b4 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Sat, 28 Sep 2024 13:35:10 -0400 Subject: [PATCH 1/7] Boilerplate --- libraries/ember/.editorconfig | 19 +++ libraries/ember/.ember-cli | 7 ++ libraries/ember/.gitignore | 25 ++++ libraries/ember/.prettierignore | 13 ++ libraries/ember/.stylelintignore | 8 ++ libraries/ember/.stylelintrc.js | 5 + libraries/ember/.template-lintrc.js | 5 + libraries/ember/.watchmanconfig | 3 + libraries/ember/app/app.js | 13 ++ libraries/ember/app/components/.gitkeep | 0 libraries/ember/app/config/environment.js | 3 + libraries/ember/app/router.js | 9 ++ libraries/ember/app/styles/app.css | 1 + libraries/ember/app/templates/application.hbs | 7 ++ libraries/ember/babel.config.cjs | 42 +++++++ libraries/ember/config/ember-cli-update.json | 1 + libraries/ember/config/environment.js | 48 ++++++++ libraries/ember/config/optional-features.json | 7 ++ libraries/ember/config/targets.js | 11 ++ libraries/ember/ember-cli-build.js | 10 ++ libraries/ember/eslint.config.mjs | 113 ++++++++++++++++++ libraries/ember/index.html | 29 +++++ libraries/ember/karma.conf.js | 90 ++++++++++++++ libraries/ember/package.json | 105 ++++++++++++++++ libraries/ember/public/robots.txt | 3 + libraries/ember/tests.webpack.js | 20 ++++ libraries/ember/vite.config.mjs | 55 +++++++++ 27 files changed, 652 insertions(+) create mode 100644 libraries/ember/.editorconfig create mode 100644 libraries/ember/.ember-cli create mode 100644 libraries/ember/.gitignore create mode 100644 libraries/ember/.prettierignore create mode 100644 libraries/ember/.stylelintignore create mode 100644 libraries/ember/.stylelintrc.js create mode 100644 libraries/ember/.template-lintrc.js create mode 100644 libraries/ember/.watchmanconfig create mode 100644 libraries/ember/app/app.js create mode 100644 libraries/ember/app/components/.gitkeep create mode 100644 libraries/ember/app/config/environment.js create mode 100644 libraries/ember/app/router.js create mode 100644 libraries/ember/app/styles/app.css create mode 100644 libraries/ember/app/templates/application.hbs create mode 100644 libraries/ember/babel.config.cjs create mode 100644 libraries/ember/config/ember-cli-update.json create mode 100644 libraries/ember/config/environment.js create mode 100644 libraries/ember/config/optional-features.json create mode 100644 libraries/ember/config/targets.js create mode 100644 libraries/ember/ember-cli-build.js create mode 100644 libraries/ember/eslint.config.mjs create mode 100644 libraries/ember/index.html create mode 100644 libraries/ember/karma.conf.js create mode 100644 libraries/ember/package.json create mode 100644 libraries/ember/public/robots.txt create mode 100644 libraries/ember/tests.webpack.js create mode 100644 libraries/ember/vite.config.mjs diff --git a/libraries/ember/.editorconfig b/libraries/ember/.editorconfig new file mode 100644 index 0000000000..c35a002406 --- /dev/null +++ b/libraries/ember/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + +[*] +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +indent_style = space +indent_size = 2 + +[*.hbs] +insert_final_newline = false + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/libraries/ember/.ember-cli b/libraries/ember/.ember-cli new file mode 100644 index 0000000000..465c4050de --- /dev/null +++ b/libraries/ember/.ember-cli @@ -0,0 +1,7 @@ +{ + /** + Setting `isTypeScriptProject` to true will force the blueprint generators to generate TypeScript + rather than JavaScript by default, when a TypeScript version of a given blueprint is available. + */ + "isTypeScriptProject": false +} diff --git a/libraries/ember/.gitignore b/libraries/ember/.gitignore new file mode 100644 index 0000000000..71ad79d02e --- /dev/null +++ b/libraries/ember/.gitignore @@ -0,0 +1,25 @@ +# compiled output +/dist/ +/declarations/ + +# dependencies +/node_modules/ + +# misc +/.env* +/.pnp* +/.eslintcache +/coverage/ +/npm-debug.log* +/testem.log +/yarn-error.log + +# ember-try +/.node_modules.ember-try/ +/npm-shrinkwrap.json.ember-try +/package.json.ember-try +/package-lock.json.ember-try +/yarn.lock.ember-try + +# broccoli-debug +/DEBUG/ diff --git a/libraries/ember/.prettierignore b/libraries/ember/.prettierignore new file mode 100644 index 0000000000..9385391f21 --- /dev/null +++ b/libraries/ember/.prettierignore @@ -0,0 +1,13 @@ +# unconventional js +/blueprints/*/files/ + +# compiled output +/dist/ + +# misc +/coverage/ +!.* +.*/ + +# ember-try +/.node_modules.ember-try/ diff --git a/libraries/ember/.stylelintignore b/libraries/ember/.stylelintignore new file mode 100644 index 0000000000..a0cf71cbd1 --- /dev/null +++ b/libraries/ember/.stylelintignore @@ -0,0 +1,8 @@ +# unconventional files +/blueprints/*/files/ + +# compiled output +/dist/ + +# addons +/.node_modules.ember-try/ diff --git a/libraries/ember/.stylelintrc.js b/libraries/ember/.stylelintrc.js new file mode 100644 index 0000000000..75caf8d4ae --- /dev/null +++ b/libraries/ember/.stylelintrc.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = { + extends: ["stylelint-config-standard", "stylelint-prettier/recommended"], +}; diff --git a/libraries/ember/.template-lintrc.js b/libraries/ember/.template-lintrc.js new file mode 100644 index 0000000000..d1311e1163 --- /dev/null +++ b/libraries/ember/.template-lintrc.js @@ -0,0 +1,5 @@ +"use strict"; + +module.exports = { + extends: "recommended", +}; diff --git a/libraries/ember/.watchmanconfig b/libraries/ember/.watchmanconfig new file mode 100644 index 0000000000..f9c3d8f84f --- /dev/null +++ b/libraries/ember/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["dist"] +} diff --git a/libraries/ember/app/app.js b/libraries/ember/app/app.js new file mode 100644 index 0000000000..1e7fb61dec --- /dev/null +++ b/libraries/ember/app/app.js @@ -0,0 +1,13 @@ +import Application from "@ember/application"; +import compatModules from "@embroider/core/entrypoint"; +import Resolver from "ember-resolver"; +import loadInitializers from "ember-load-initializers"; +import config from "./config/environment"; + +export default class App extends Application { + modulePrefix = config.modulePrefix; + podModulePrefix = config.podModulePrefix; + Resolver = Resolver.withModules(compatModules); +} + +loadInitializers(App, config.modulePrefix, compatModules); diff --git a/libraries/ember/app/components/.gitkeep b/libraries/ember/app/components/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libraries/ember/app/config/environment.js b/libraries/ember/app/config/environment.js new file mode 100644 index 0000000000..2b32f1a290 --- /dev/null +++ b/libraries/ember/app/config/environment.js @@ -0,0 +1,3 @@ +import loadConfigFromMeta from "@embroider/config-meta-loader"; + +export default loadConfigFromMeta("ember-cee-app"); diff --git a/libraries/ember/app/router.js b/libraries/ember/app/router.js new file mode 100644 index 0000000000..115c372b6d --- /dev/null +++ b/libraries/ember/app/router.js @@ -0,0 +1,9 @@ +import EmberRouter from "@ember/routing/router"; +import config from "ember-cee-app/config/environment"; + +export default class Router extends EmberRouter { + location = config.locationType; + rootURL = config.rootURL; +} + +Router.map(function () {}); diff --git a/libraries/ember/app/styles/app.css b/libraries/ember/app/styles/app.css new file mode 100644 index 0000000000..2763afa4cf --- /dev/null +++ b/libraries/ember/app/styles/app.css @@ -0,0 +1 @@ +/* Ember supports plain CSS out of the box. More info: https://cli.emberjs.com/release/advanced-use/stylesheets/ */ diff --git a/libraries/ember/app/templates/application.hbs b/libraries/ember/app/templates/application.hbs new file mode 100644 index 0000000000..8616e45136 --- /dev/null +++ b/libraries/ember/app/templates/application.hbs @@ -0,0 +1,7 @@ +{{page-title "EmberCeeApp"}} + +{{outlet}} + +{{! The following component displays Ember's default welcome message. }} + +{{! Feel free to remove this! }} \ No newline at end of file diff --git a/libraries/ember/babel.config.cjs b/libraries/ember/babel.config.cjs new file mode 100644 index 0000000000..bff49de1ec --- /dev/null +++ b/libraries/ember/babel.config.cjs @@ -0,0 +1,42 @@ +const { + babelCompatSupport, + templateCompatSupport, +} = require("@embroider/compat/babel"); + +module.exports = { + plugins: [ + [ + "babel-plugin-ember-template-compilation", + { + compilerPath: "ember-source/dist/ember-template-compiler.js", + enableLegacyModules: [ + "ember-cli-htmlbars", + "ember-cli-htmlbars-inline-precompile", + "htmlbars-inline-precompile", + ], + transforms: [...templateCompatSupport()], + }, + ], + [ + "module:decorator-transforms", + { + runtime: { + import: require.resolve("decorator-transforms/runtime-esm"), + }, + }, + ], + [ + "@babel/plugin-transform-runtime", + { + absoluteRuntime: __dirname, + useESModules: true, + regenerator: false, + }, + ], + ...babelCompatSupport(), + ], + + generatorOpts: { + compact: false, + }, +}; diff --git a/libraries/ember/config/ember-cli-update.json b/libraries/ember/config/ember-cli-update.json new file mode 100644 index 0000000000..dff46c6bad --- /dev/null +++ b/libraries/ember/config/ember-cli-update.json @@ -0,0 +1 @@ +{"schemaVersion":"1.0.0","packages":[{"name":"@embroider/app-blueprint","version":"0.11.0","blueprints":[{"name":"@embroider/app-blueprint","isBaseBlueprint":true,"options":["--package-manager pnpm"]}]}]} \ No newline at end of file diff --git a/libraries/ember/config/environment.js b/libraries/ember/config/environment.js new file mode 100644 index 0000000000..6bd1da879d --- /dev/null +++ b/libraries/ember/config/environment.js @@ -0,0 +1,48 @@ +"use strict"; + +module.exports = function (environment) { + const ENV = { + modulePrefix: "ember-cee-app", + environment, + rootURL: "/", + locationType: "history", + EmberENV: { + EXTEND_PROTOTYPES: false, + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true + }, + }, + + APP: { + // Here you can pass flags/options to your application instance + // when it is created + }, + }; + + if (environment === "development") { + // ENV.APP.LOG_RESOLVER = true; + // ENV.APP.LOG_ACTIVE_GENERATION = true; + // ENV.APP.LOG_TRANSITIONS = true; + // ENV.APP.LOG_TRANSITIONS_INTERNAL = true; + // ENV.APP.LOG_VIEW_LOOKUPS = true; + } + + if (environment === "test") { + // Testem prefers this... + ENV.locationType = "none"; + + // keep test console output quieter + ENV.APP.LOG_ACTIVE_GENERATION = false; + ENV.APP.LOG_VIEW_LOOKUPS = false; + + ENV.APP.rootElement = "#ember-testing"; + ENV.APP.autoboot = false; + } + + if (environment === "production") { + // here you can enable a production-specific feature + } + + return ENV; +}; diff --git a/libraries/ember/config/optional-features.json b/libraries/ember/config/optional-features.json new file mode 100644 index 0000000000..5329dd9913 --- /dev/null +++ b/libraries/ember/config/optional-features.json @@ -0,0 +1,7 @@ +{ + "application-template-wrapper": false, + "default-async-observers": true, + "jquery-integration": false, + "template-only-glimmer-components": true, + "no-implicit-route-model": true +} diff --git a/libraries/ember/config/targets.js b/libraries/ember/config/targets.js new file mode 100644 index 0000000000..6277c67845 --- /dev/null +++ b/libraries/ember/config/targets.js @@ -0,0 +1,11 @@ +"use strict"; + +const browsers = [ + "last 1 Chrome versions", + "last 1 Firefox versions", + "last 1 Safari versions", +]; + +module.exports = { + browsers, +}; diff --git a/libraries/ember/ember-cli-build.js b/libraries/ember/ember-cli-build.js new file mode 100644 index 0000000000..3bdae78fc5 --- /dev/null +++ b/libraries/ember/ember-cli-build.js @@ -0,0 +1,10 @@ +"use strict"; + +const EmberApp = require("ember-cli/lib/broccoli/ember-app"); +const { maybeEmbroider } = require("@embroider/test-setup"); + +module.exports = function (defaults) { + let app = new EmberApp(defaults, {}); + + return maybeEmbroider(app); +}; diff --git a/libraries/ember/eslint.config.mjs b/libraries/ember/eslint.config.mjs new file mode 100644 index 0000000000..0e90bb64aa --- /dev/null +++ b/libraries/ember/eslint.config.mjs @@ -0,0 +1,113 @@ +import globals from "globals"; +import js from "@eslint/js"; + +import ember from "eslint-plugin-ember"; +import emberRecommended from "eslint-plugin-ember/configs/recommended"; +import gjsRecommended from "eslint-plugin-ember/configs/recommended-gjs"; + +import prettier from "eslint-plugin-prettier/recommended"; +import qunit from "eslint-plugin-qunit"; +import n from "eslint-plugin-n"; + +import emberParser from "ember-eslint-parser"; +import babelParser from "@babel/eslint-parser"; + +const esmParserOptions = { + ecmaFeatures: { modules: true }, + ecmaVersion: "latest", +}; + +export default [ + js.configs.recommended, + prettier, + { + ignores: ["dist/", "node_modules/", "coverage/", "!**/.*"], + linterOptions: { + reportUnusedDisableDirectives: "error", + }, + }, + { + files: ["**/*.js"], + languageOptions: { + parser: babelParser, + parserOptions: esmParserOptions, + globals: { + ...globals.browser, + }, + }, + plugins: { + ember, + }, + rules: { + ...emberRecommended.rules, + ...gjsRecommended.rules, + }, + }, + { + files: ["**/*.gjs"], + languageOptions: { + parser: emberParser, + parserOptions: esmParserOptions, + globals: { + ...globals.browser, + }, + }, + plugins: { + ember, + }, + rules: { + ...emberRecommended.rules, + ...gjsRecommended.rules, + }, + }, + { + files: ["tests/**/*-test.{js,gjs}"], + plugins: { + qunit, + }, + }, + /** + * CJS node files + */ + { + files: [ + "**/*.cjs", + "config/**/*.js", + "testem.js", + "testem*.js", + ".prettierrc.js", + ".stylelintrc.js", + ".template-lintrc.js", + "ember-cli-build.js", + ], + plugins: { + n, + }, + + languageOptions: { + sourceType: "script", + ecmaVersion: "latest", + globals: { + ...globals.node, + }, + }, + }, + /** + * ESM node files + */ + { + files: ["*.mjs"], + plugins: { + n, + }, + + languageOptions: { + sourceType: "module", + ecmaVersion: "latest", + parserOptions: esmParserOptions, + globals: { + ...globals.node, + }, + }, + }, +]; diff --git a/libraries/ember/index.html b/libraries/ember/index.html new file mode 100644 index 0000000000..efadcc9847 --- /dev/null +++ b/libraries/ember/index.html @@ -0,0 +1,29 @@ + + + + + AppTemplate + + + + {{content-for "head"}} + + + + + {{content-for "head-footer"}} + + + {{content-for "body"}} + + + + + {{content-for "body-footer"}} + + diff --git a/libraries/ember/karma.conf.js b/libraries/ember/karma.conf.js new file mode 100644 index 0000000000..fc6bdc36e8 --- /dev/null +++ b/libraries/ember/karma.conf.js @@ -0,0 +1,90 @@ +/** + * @license + * Copyright 2017 Google Inc. All rights reserved. + * + * 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. + */ + +var webpack = require('webpack'); +var path = require('path'); + +module.exports = function(config) { + config.set({ + plugins: [ + 'karma-chrome-launcher', + 'karma-firefox-launcher', + require(path.resolve(__dirname, '../__shared__/karma-plugins/karma-mocha')), + 'karma-sourcemap-loader', + 'karma-webpack', + require(path.resolve(__dirname, '../__shared__/karma-plugins/karma-custom-html-reporter')), + require(path.resolve(__dirname, '../__shared__/karma-plugins/karma-custom-json-reporter')) + ], + browsers: ['ChromeHeadless', 'FirefoxHeadless'], // run in Chrome and Firefox + customLaunchers: { + FirefoxHeadless: { + base: 'Firefox', + flags: [ '-headless' ], + displayName: 'FirefoxHeadless' + }, + }, + singleRun: true, // set this to false to leave the browser open + frameworks: ['mocha'], // use the mocha test framework + files: [ + 'tests.webpack.js' // just load this file + ], + preprocessors: { + 'tests.webpack.js': ['webpack', 'sourcemap'] // preprocess with webpack and our sourcemap loader + }, + reporters: ['dots', 'custom-html', 'custom-json'], // report results in these formats + htmlReporter: { + outputFile: path.resolve(__dirname, './results/results.html'), + pageTitle: 'Svelte + Custom Elements', + groupSuites: true, + useCompactStyle: true + }, + jsonResultReporter: { + outputFile: path.resolve(__dirname, './results/results.json') + }, + webpack: { // kind of a copy of your webpack config + mode: 'development', + // devtool: 'inline-source-map', // just do inline source maps instead of the default + resolve: { + modules: [ + path.resolve(__dirname, '../__shared__/webcomponents/src'), + path.resolve(__dirname, './node_modules') + ] + }, + module: { + rules: [ + { + test: /\.(svelte|js)$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader' + } + }, + { + test: /\.svelte$/, + exclude: /node_modules/, + use: { + loader: 'svelte-loader' + } + } + ] + } + }, + webpackServer: { + // noInfo: true // please don't spam the console when running in karma! + } + }); +}; diff --git a/libraries/ember/package.json b/libraries/ember/package.json new file mode 100644 index 0000000000..d06b02c9e6 --- /dev/null +++ b/libraries/ember/package.json @@ -0,0 +1,105 @@ +{ + "name": "ember-cee-app", + "version": "0.0.0", + "private": true, + "description": "Small description for ember-cee-app goes here", + "repository": "", + "license": "MIT", + "author": "NullVoxPopuli", + "scripts": { + "test": "wireit", + "build": "wireit" + "lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\"", + "lint:fix": "concurrently \"pnpm:lint:*:fix\" --names \"fix:\"", + "lint:hbs": "ember-template-lint .", + "lint:hbs:fix": "ember-template-lint . --fix", + "lint:js": "eslint . --cache", + "lint:js:fix": "eslint . --fix", + "start": "vite", + "vite:build": "vite build", + "test:ember": "vite build --mode test && ember test --path dist" + }, + "devDependencies": { + "@babel/core": "^7.25.2", + "@babel/eslint-parser": "^7.25.1", + "@ember/optional-features": "^2.1.0", + "@ember/string": "^3.1.1", + "@embroider/compat": "3.6.2-unstable.f33728f", + "@embroider/config-meta-loader": "0.0.1-unstable.f33728f", + "@embroider/core": "3.4.16-unstable.f33728f", + "@embroider/test-setup": "4.0.1-unstable.f33728f", + "@embroider/vite": "0.2.1-unstable.f33728f", + "@glimmer/component": "^1.1.2", + "@glimmer/tracking": "^1.1.2", + "@rollup/plugin-babel": "^6.0.4", + "babel-plugin-ember-template-compilation": "^2.3.0", + "concurrently": "^8.2.2", + "decorator-transforms": "^2.2.0", + "ember-auto-import": "^2.7.4", + "ember-cli": "~5.11.0", + "ember-cli-babel": "^8.2.0", + "ember-cli-htmlbars": "^6.3.0", + "ember-cli-inject-live-reload": "^2.1.0", + "ember-load-initializers": "^3.0.1", + "ember-modifier": "^4.2.0", + "ember-page-title": "^8.2.3", + "ember-resolver": "^13.0.2", + "ember-source": "~5.11.0", + "ember-template-lint": "^5.13.0", + "eslint": "^9.11.1", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-ember": "^12.2.1", + "eslint-plugin-n": "^17.10.3", + "eslint-plugin-prettier": "^5.2.1", + "eslint-plugin-qunit": "^8.1.1", + "globals": "^15.9.0", + "karma": "6.4.2", + "karma-chrome-launcher": "3.2.0", + "karma-firefox-launcher": "2.1.2", + "karma-sourcemap-loader": "0.4.0", + "karma-webpack": "5.0.0", + "loader.js": "^4.7.0", + "prettier": "^3.3.3", + "prettier-plugin-ember-template-tag": "^2.0.2", + "tracked-built-ins": "^3.3.0", + "vite": "^5.4.8", + "webpack": "^5.93.0" + }, + "engines": { + "node": ">= 18" + }, + "ember": { + "edition": "octane" + }, + "ember-addon": { + "type": "app", + "version": 2 + }, + "exports": { + "./tests/*": "./tests/*", + "./*": "./app/*" + }, + "wireit": { + "test": { + "dependencies": [ + "../..:karma-plugins" + ], + "files": [ + ".babelrc", + "karma.conf.js", + "tests.webpack.js", + "src", + "meta" + ], + "output": [ + "results" + ], + "command": "cross-env LIBRARY_NAME=svelte karma start || echo ''" + }, + "build": { + "dependencies": [ + "test" + ] + } + } +} diff --git a/libraries/ember/public/robots.txt b/libraries/ember/public/robots.txt new file mode 100644 index 0000000000..f5916452e5 --- /dev/null +++ b/libraries/ember/public/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: diff --git a/libraries/ember/tests.webpack.js b/libraries/ember/tests.webpack.js new file mode 100644 index 0000000000..a42a8d9a9d --- /dev/null +++ b/libraries/ember/tests.webpack.js @@ -0,0 +1,20 @@ +/** + * @license + * Copyright 2017 Google Inc. All rights reserved. + * + * 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. + */ + +// Run basic and advanced tests through Karma +require('./src/basic-tests.js'); +require('./src/advanced-tests.js'); diff --git a/libraries/ember/vite.config.mjs b/libraries/ember/vite.config.mjs new file mode 100644 index 0000000000..2b845a0b87 --- /dev/null +++ b/libraries/ember/vite.config.mjs @@ -0,0 +1,55 @@ +import { defineConfig } from "vite"; +import { + resolver, + scripts, + templateTag, + optimizeDeps, + compatPrebuild, + assets, + contentFor, +} from "@embroider/vite"; +import { babel } from "@rollup/plugin-babel"; + +const extensions = [ + ".mjs", + ".gjs", + ".js", + ".mts", + ".gts", + ".ts", + ".hbs", + ".json", +]; + +export default defineConfig(() => { + return { + resolve: { + extensions, + }, + plugins: [ + templateTag(), + scripts(), + resolver(), + compatPrebuild(), + assets(), + contentFor(), + + babel({ + babelHelpers: "runtime", + extensions, + }), + ], + optimizeDeps: optimizeDeps(), + server: { + port: 4200, + }, + build: { + outDir: "dist", + rollupOptions: { + input: { + main: "index.html", + }, + }, + }, + }; +}); From 39477c0b3b5656e7115d277a7cae8106b22b79c1 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Sat, 28 Sep 2024 14:18:20 -0400 Subject: [PATCH 2/7] Add components --- libraries/ember/app/app.js | 13 -- libraries/ember/app/components/.gitkeep | 0 libraries/ember/app/config/environment.js | 3 - libraries/ember/app/router.js | 9 -- libraries/ember/app/styles/app.css | 1 - libraries/ember/app/templates/application.hbs | 7 - libraries/ember/public/robots.txt | 3 - libraries/ember/src/components.gjs | 147 ++++++++++++++++++ 8 files changed, 147 insertions(+), 36 deletions(-) delete mode 100644 libraries/ember/app/app.js delete mode 100644 libraries/ember/app/components/.gitkeep delete mode 100644 libraries/ember/app/config/environment.js delete mode 100644 libraries/ember/app/router.js delete mode 100644 libraries/ember/app/styles/app.css delete mode 100644 libraries/ember/app/templates/application.hbs delete mode 100644 libraries/ember/public/robots.txt create mode 100644 libraries/ember/src/components.gjs diff --git a/libraries/ember/app/app.js b/libraries/ember/app/app.js deleted file mode 100644 index 1e7fb61dec..0000000000 --- a/libraries/ember/app/app.js +++ /dev/null @@ -1,13 +0,0 @@ -import Application from "@ember/application"; -import compatModules from "@embroider/core/entrypoint"; -import Resolver from "ember-resolver"; -import loadInitializers from "ember-load-initializers"; -import config from "./config/environment"; - -export default class App extends Application { - modulePrefix = config.modulePrefix; - podModulePrefix = config.podModulePrefix; - Resolver = Resolver.withModules(compatModules); -} - -loadInitializers(App, config.modulePrefix, compatModules); diff --git a/libraries/ember/app/components/.gitkeep b/libraries/ember/app/components/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/libraries/ember/app/config/environment.js b/libraries/ember/app/config/environment.js deleted file mode 100644 index 2b32f1a290..0000000000 --- a/libraries/ember/app/config/environment.js +++ /dev/null @@ -1,3 +0,0 @@ -import loadConfigFromMeta from "@embroider/config-meta-loader"; - -export default loadConfigFromMeta("ember-cee-app"); diff --git a/libraries/ember/app/router.js b/libraries/ember/app/router.js deleted file mode 100644 index 115c372b6d..0000000000 --- a/libraries/ember/app/router.js +++ /dev/null @@ -1,9 +0,0 @@ -import EmberRouter from "@ember/routing/router"; -import config from "ember-cee-app/config/environment"; - -export default class Router extends EmberRouter { - location = config.locationType; - rootURL = config.rootURL; -} - -Router.map(function () {}); diff --git a/libraries/ember/app/styles/app.css b/libraries/ember/app/styles/app.css deleted file mode 100644 index 2763afa4cf..0000000000 --- a/libraries/ember/app/styles/app.css +++ /dev/null @@ -1 +0,0 @@ -/* Ember supports plain CSS out of the box. More info: https://cli.emberjs.com/release/advanced-use/stylesheets/ */ diff --git a/libraries/ember/app/templates/application.hbs b/libraries/ember/app/templates/application.hbs deleted file mode 100644 index 8616e45136..0000000000 --- a/libraries/ember/app/templates/application.hbs +++ /dev/null @@ -1,7 +0,0 @@ -{{page-title "EmberCeeApp"}} - -{{outlet}} - -{{! The following component displays Ember's default welcome message. }} - -{{! Feel free to remove this! }} \ No newline at end of file diff --git a/libraries/ember/public/robots.txt b/libraries/ember/public/robots.txt deleted file mode 100644 index f5916452e5..0000000000 --- a/libraries/ember/public/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -# http://www.robotstxt.org -User-agent: * -Disallow: diff --git a/libraries/ember/src/components.gjs b/libraries/ember/src/components.gjs new file mode 100644 index 0000000000..4a78ece73d --- /dev/null +++ b/libraries/ember/src/components.gjs @@ -0,0 +1,147 @@ +/** + * @license + * Copyright 2017 Google Inc. All rights reserved. + * + * 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 "ce-without-children"; +import "ce-with-children"; +import "ce-with-properties"; +import "ce-with-event"; + +import Component from '@glimmer/component'; +import { tracked } from '@glimmer/tracking'; +import { on } from '@ember/modifier'; +import { modifier as customModifier } from 'ember-modifier'; + +const { String } = globalThis; + +export const ComponentWithoutChildren = ; + +export const ComponentWithChildren = ; + +export class ComponentWithChildrenRerender extends Component { + @tracked count = 1; + + deferredUpdate = () => { + Promise.resolve().then(() => { + this.count++; + }) + }; + + +} + +export class ComponentWithDifferentViews extends Component { + @tracked show = true; + + constructor() { + super(...arguments); + + // Allow this component to be externally controlled + this.args.setToggle(() => this.show = !this.show); + } + + +} + + +const data = { + bool: true, + num: 42, + str: "Ember", + arr: ["E", "m", "b", "e", "r"], + obj: { org: "emberjs", repo: "ember.js" }, + camelCaseObj: { label: "passed" }, +} + +export const ComponentWithProperties = + +; + +export const ComponentWithUnregistered = ; + +export class ComponentWithImperativeEvent extends Component { + @tracked eventHandled = false; + + addEventListenerTheLongWay = customModifier(element => { + element.addEventListener('camelEvent', () => this.eventHandled = true)) + }) + + +} + +export class ComponentWithDeclarativeEvent { + @tracked lowercaseHandled = false; + @tracked kebabHandled = false; + @tracked camelHandled = false; + @tracked capsHandled = false; + @tracked pascalHandled = false; + + handleLowercaseEvent = () => this.lowercaseHandled = true; + handleKebabEvent = () => this.kebabHandled = true; + handleCamelEvent = () => this.camelHandled = true; + handleCapsEvent = () => this.capsHandled = true; + handlePascalEvent = () => this.pascalHandled = true; + + +} From 7950a1f005b748f0d899d65026358e269a30b1fc Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Sun, 29 Sep 2024 21:33:58 -0400 Subject: [PATCH 3/7] Go back to normal app file layout while prototyping -- get tests passing first, then strip it down --- .../__shared__/webcomponents/package.json | 5 +- libraries/ember/app/app.js | 13 + .../components/cee-scenarios.gjs} | 14 +- libraries/ember/app/config/environment.js | 3 + libraries/ember/app/router.js | 9 + libraries/ember/app/templates/application.gjs | 9 + libraries/ember/index.html | 4 - libraries/ember/package.json | 16 +- libraries/ember/pnpm-lock.yaml | 13187 ++++++++++++++++ .../ember/tests/cee-tests/advanced-test.gjs | 0 .../ember/tests/cee-tests/basic-test.gjs | 50 + libraries/ember/tests/index.html | 36 + libraries/ember/tests/test-helper.js | 14 + libraries/ember/vite.config.mjs | 10 +- 14 files changed, 13353 insertions(+), 17 deletions(-) create mode 100644 libraries/ember/app/app.js rename libraries/ember/{src/components.gjs => app/components/cee-scenarios.gjs} (93%) create mode 100644 libraries/ember/app/config/environment.js create mode 100644 libraries/ember/app/router.js create mode 100644 libraries/ember/app/templates/application.gjs create mode 100644 libraries/ember/pnpm-lock.yaml create mode 100644 libraries/ember/tests/cee-tests/advanced-test.gjs create mode 100644 libraries/ember/tests/cee-tests/basic-test.gjs create mode 100644 libraries/ember/tests/index.html create mode 100644 libraries/ember/tests/test-helper.js diff --git a/libraries/__shared__/webcomponents/package.json b/libraries/__shared__/webcomponents/package.json index 981c29c7ee..c14c0355ee 100644 --- a/libraries/__shared__/webcomponents/package.json +++ b/libraries/__shared__/webcomponents/package.json @@ -2,7 +2,10 @@ "name": "webcomponents", "version": "1.0.0", "description": "", - "main": "xfoo.js", + "type": "module", + "exports": { + "./*": "./src/*.js" + }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, diff --git a/libraries/ember/app/app.js b/libraries/ember/app/app.js new file mode 100644 index 0000000000..5edea3dfa2 --- /dev/null +++ b/libraries/ember/app/app.js @@ -0,0 +1,13 @@ +import Application from '@ember/application'; +import compatModules from '@embroider/core/entrypoint'; +import Resolver from 'ember-resolver'; +import loadInitializers from 'ember-load-initializers'; +import config from './config/environment'; + +export default class App extends Application { + modulePrefix = config.modulePrefix; + podModulePrefix = config.podModulePrefix; + Resolver = Resolver.withModules(compatModules); +} + +loadInitializers(App, config.modulePrefix, compatModules); diff --git a/libraries/ember/src/components.gjs b/libraries/ember/app/components/cee-scenarios.gjs similarity index 93% rename from libraries/ember/src/components.gjs rename to libraries/ember/app/components/cee-scenarios.gjs index 4a78ece73d..6234cd62b9 100644 --- a/libraries/ember/src/components.gjs +++ b/libraries/ember/app/components/cee-scenarios.gjs @@ -15,10 +15,10 @@ * limitations under the License. */ -import "ce-without-children"; -import "ce-with-children"; -import "ce-with-properties"; -import "ce-with-event"; +import "webcomponents/ce-without-children"; +import "webcomponents/ce-with-children"; +import "webcomponents/ce-with-properties"; +import "webcomponents/ce-with-event"; import Component from '@glimmer/component'; import { tracked } from '@glimmer/tracking'; @@ -107,8 +107,10 @@ export class ComponentWithImperativeEvent extends Component { @tracked eventHandled = false; addEventListenerTheLongWay = customModifier(element => { - element.addEventListener('camelEvent', () => this.eventHandled = true)) - }) + element.addEventListener('camelEvent', () => { + this.eventHandled = true; + }); + }); } -export class ComponentWithDeclarativeEvent { +export class ComponentWithDeclarativeEvent extends Component { @tracked lowercaseHandled = false; @tracked kebabHandled = false; @tracked camelHandled = false; diff --git a/libraries/ember/package.json b/libraries/ember/package.json index b98d1ba620..05b6560816 100644 --- a/libraries/ember/package.json +++ b/libraries/ember/package.json @@ -22,6 +22,7 @@ "devDependencies": { "@babel/core": "^7.25.2", "@babel/eslint-parser": "^7.25.1", + "@babel/plugin-transform-runtime": "^7.25.4", "@ember/optional-features": "^2.1.0", "@ember/string": "^4.0.0", "@ember/test-helpers": "^4.0.4", @@ -108,6 +109,7 @@ } }, "dependencies": { - "ember-route-template": "^1.0.3" + "ember-route-template": "^1.0.3", + "qunit-theme-ember": "^1.0.0" } } diff --git a/libraries/ember/pnpm-lock.yaml b/libraries/ember/pnpm-lock.yaml index 14e55b8abd..5480a8f8f8 100644 --- a/libraries/ember/pnpm-lock.yaml +++ b/libraries/ember/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: ember-route-template: specifier: ^1.0.3 version: 1.0.3 + qunit-theme-ember: + specifier: ^1.0.0 + version: 1.0.0 devDependencies: '@babel/core': specifier: ^7.25.2 @@ -18,6 +21,9 @@ importers: '@babel/eslint-parser': specifier: ^7.25.1 version: 7.25.1(@babel/core@7.25.2)(eslint@9.11.1) + '@babel/plugin-transform-runtime': + specifier: ^7.25.4 + version: 7.25.4(@babel/core@7.25.2) '@ember/optional-features': specifier: ^2.1.0 version: 2.1.0 diff --git a/libraries/ember/tests/cee-tests/advanced-test.gjs b/libraries/ember/tests/cee-tests/advanced-test.gjs index e69de29bb2..9a7dd0f424 100644 --- a/libraries/ember/tests/cee-tests/advanced-test.gjs +++ b/libraries/ember/tests/cee-tests/advanced-test.gjs @@ -0,0 +1,127 @@ +import QUnit, { module, test } from "qunit"; +import { setupRenderingTest } from "ember-qunit"; +import { click, settled, render, find } from "@ember/test-helpers"; + +import { + ComponentWithoutChildren, + ComponentWithChildren, + ComponentWithChildrenRerender, + ComponentWithDifferentViews, + ComponentWithProperties, + ComponentWithUnregistered, + ComponentWithImperativeEvent, + ComponentWithDeclarativeEvent, +} from "ember-cee-app/components/cee-scenarios"; + +module("advanced support", function (hooks) { + setupRenderingTest(hooks); + + module("attributes and properties", function() { + test("will pass array data as a property", async function(assert) { + await render( + + ); + + let wc = find('#wc'); + assert.deepEqual(wc.arr, ['E', 'm', 'b', 'e', 'r']); + }); + + test("will pass object data as a property", async function(assert) { + await render( + + ); + + let wc = find('#wc'); + assert.deepEqual(wc.obj, { org: 'emberjs', repo: 'ember.js' }); + }); + + test("will pass object data to a camelCase-named property", async function(assert) { + await render( + + ); + + let wc = find('#wc'); + assert.deepEqual(wc.camelCaseObj, { label: 'passed' }); + }); + }); + + module('events', function() { + test("can declaratively listen to a lowercase DOM event dispatched by a Custom Element", async function(assert) { + await render( + + ); + + assert.dom('#wc').exists(); + assert.dom('#lowercase').hasText('false'); + + await click('#wc'); + assert.dom('#lowercase').hasText('true'); + }); + + + test("can declaratively listen to a kebab-case DOM event dispatched by a Custom Element", async function(assert) { + await render( + + ); + + assert.dom('#wc').exists(); + assert.dom('#kebab').hasText('false'); + + await click('#wc'); + assert.dom('#kebab').hasText('true'); + }); + + + test("can declaratively listen to a camelCase DOM event dispatched by a Custom Element", async function(assert) { + await render( + + ); + + assert.dom('#wc').exists(); + assert.dom('#camel').hasText('false'); + + await click('#wc'); + assert.dom('#camel').hasText('true'); + }); + + test("can declaratively listen to a CAPScase DOM event dispatched by a Custom Element", async function(assert) { + await render( + + ); + + assert.dom('#wc').exists(); + assert.dom('#caps').hasText('false'); + + await click('#wc'); + assert.dom('#caps').hasText('true'); + }); + + test("can declaratively listen to a PascalCase DOM event dispatched by a Custom Element", async function(assert) { + await render( + + ); + + assert.dom('#wc').exists(); + assert.dom('#pascal').hasText('false'); + + await click('#wc'); + assert.dom('#pascal').hasText('true'); + }); + }); +}); diff --git a/libraries/ember/tests/cee-tests/basic-test.gjs b/libraries/ember/tests/cee-tests/basic-test.gjs index 56deb8f5df..789cfe3bd9 100644 --- a/libraries/ember/tests/cee-tests/basic-test.gjs +++ b/libraries/ember/tests/cee-tests/basic-test.gjs @@ -118,8 +118,6 @@ module("basic support", function (hooks) { ); let wc = find('#wc'); - // Is Passed as data - assert.dom(wc).doesNotHaveAttribute('bool'); assert.strictEqual(wc.bool, true); }); @@ -131,8 +129,6 @@ module("basic support", function (hooks) { ); let wc = find('#wc'); - // Is Passed as data - assert.dom(wc).doesNotHaveAttribute('num'); assert.strictEqual(parseInt(wc.num, 10), 42); }); @@ -144,8 +140,6 @@ module("basic support", function (hooks) { ); let wc = find('#wc'); - // Is Passed as data - assert.dom(wc).doesNotHaveAttribute('num'); assert.strictEqual(wc.str, 'Ember'); }); }); diff --git a/libraries/ember/tests/test-helper.js b/libraries/ember/tests/test-helper.js index faa35b5513..a393e5eca9 100644 --- a/libraries/ember/tests/test-helper.js +++ b/libraries/ember/tests/test-helper.js @@ -1,3 +1,5 @@ +import "qunit-theme-ember/qunit.css"; + import Application from "ember-cee-app/app"; import config from "ember-cee-app/config/environment"; import * as QUnit from "qunit"; From 54c8b18a097cdeb6828b65e0ac4827713d942c38 Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 30 Sep 2024 21:36:29 -0400 Subject: [PATCH 6/7] Add meta --- libraries/ember/meta/expectedResults.json | 19 +++++++++++++++++++ libraries/ember/meta/issues.json | 1 + libraries/ember/meta/summary.md | 9 +++++++++ package.json | 1 + 4 files changed, 30 insertions(+) create mode 100644 libraries/ember/meta/expectedResults.json create mode 100644 libraries/ember/meta/issues.json create mode 100644 libraries/ember/meta/summary.md diff --git a/libraries/ember/meta/expectedResults.json b/libraries/ember/meta/expectedResults.json new file mode 100644 index 0000000000..714176a640 --- /dev/null +++ b/libraries/ember/meta/expectedResults.json @@ -0,0 +1,19 @@ +{ + "success": 32, + "failed": 0, + "skipped": 0, + "error": false, + "disconnected": false, + "exitCode": 0, + "score": 100, + "basicSupport": { + "total": 16, + "failed": 0, + "passed": 16 + }, + "advancedSupport": { + "total": 16, + "failed": 0, + "passed": 16 + } +} diff --git a/libraries/ember/meta/issues.json b/libraries/ember/meta/issues.json new file mode 100644 index 0000000000..fe51488c70 --- /dev/null +++ b/libraries/ember/meta/issues.json @@ -0,0 +1 @@ +[] diff --git a/libraries/ember/meta/summary.md b/libraries/ember/meta/summary.md new file mode 100644 index 0000000000..0e30dee7eb --- /dev/null +++ b/libraries/ember/meta/summary.md @@ -0,0 +1,9 @@ +

Handling data

+ +Because attributes must be strings, Ember requires that, if an attribute is desired, +its value be a string, otherwise data is passed as properties to the element instance. + +

Handling events

+ +Ember can listen to native DOM events dispatched from Custom Elements. +It supports all styles of events (lowercase, camelCase, kebab-case, etc). diff --git a/package.json b/package.json index 3112c9c926..365217ec55 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "./libraries/angularjs:build", "./libraries/dio:build", "./libraries/dojo:build", + "./libraries/ember:build", "./libraries/hybrids:build", "./libraries/hyperapp:build", "./libraries/hyperhtml:build", From 8d42ade1bd4bf01467f2996bd1937f5533dadb5d Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Mon, 30 Sep 2024 21:41:23 -0400 Subject: [PATCH 7/7] Update package.json, delete unneeded files --- libraries/ember/karma.conf.js | 90 -------------------------------- libraries/ember/package.json | 16 +++--- libraries/ember/tests.webpack.js | 20 ------- 3 files changed, 8 insertions(+), 118 deletions(-) delete mode 100644 libraries/ember/karma.conf.js delete mode 100644 libraries/ember/tests.webpack.js diff --git a/libraries/ember/karma.conf.js b/libraries/ember/karma.conf.js deleted file mode 100644 index fc6bdc36e8..0000000000 --- a/libraries/ember/karma.conf.js +++ /dev/null @@ -1,90 +0,0 @@ -/** - * @license - * Copyright 2017 Google Inc. All rights reserved. - * - * 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. - */ - -var webpack = require('webpack'); -var path = require('path'); - -module.exports = function(config) { - config.set({ - plugins: [ - 'karma-chrome-launcher', - 'karma-firefox-launcher', - require(path.resolve(__dirname, '../__shared__/karma-plugins/karma-mocha')), - 'karma-sourcemap-loader', - 'karma-webpack', - require(path.resolve(__dirname, '../__shared__/karma-plugins/karma-custom-html-reporter')), - require(path.resolve(__dirname, '../__shared__/karma-plugins/karma-custom-json-reporter')) - ], - browsers: ['ChromeHeadless', 'FirefoxHeadless'], // run in Chrome and Firefox - customLaunchers: { - FirefoxHeadless: { - base: 'Firefox', - flags: [ '-headless' ], - displayName: 'FirefoxHeadless' - }, - }, - singleRun: true, // set this to false to leave the browser open - frameworks: ['mocha'], // use the mocha test framework - files: [ - 'tests.webpack.js' // just load this file - ], - preprocessors: { - 'tests.webpack.js': ['webpack', 'sourcemap'] // preprocess with webpack and our sourcemap loader - }, - reporters: ['dots', 'custom-html', 'custom-json'], // report results in these formats - htmlReporter: { - outputFile: path.resolve(__dirname, './results/results.html'), - pageTitle: 'Svelte + Custom Elements', - groupSuites: true, - useCompactStyle: true - }, - jsonResultReporter: { - outputFile: path.resolve(__dirname, './results/results.json') - }, - webpack: { // kind of a copy of your webpack config - mode: 'development', - // devtool: 'inline-source-map', // just do inline source maps instead of the default - resolve: { - modules: [ - path.resolve(__dirname, '../__shared__/webcomponents/src'), - path.resolve(__dirname, './node_modules') - ] - }, - module: { - rules: [ - { - test: /\.(svelte|js)$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader' - } - }, - { - test: /\.svelte$/, - exclude: /node_modules/, - use: { - loader: 'svelte-loader' - } - } - ] - } - }, - webpackServer: { - // noInfo: true // please don't spam the console when running in karma! - } - }); -}; diff --git a/libraries/ember/package.json b/libraries/ember/package.json index 05b6560816..6849ee5e62 100644 --- a/libraries/ember/package.json +++ b/libraries/ember/package.json @@ -4,6 +4,7 @@ "private": true, "description": "Small description for ember-cee-app goes here", "repository": "", + "library_repo": "emberjs/ember.js", "license": "MIT", "author": "NullVoxPopuli", "scripts": { @@ -87,20 +88,19 @@ }, "wireit": { "test": { - "dependencies": [ - "../..:karma-plugins" - ], "files": [ - ".babelrc", - "karma.conf.js", - "tests.webpack.js", - "src", + "babel.config.cjs", + "vite.config.mjs", + "ember-cli-build.js", + "app", + "config", + "tests", "meta" ], "output": [ "results" ], - "command": "cross-env LIBRARY_NAME=svelte karma start || echo ''" + "command": "cross-env LIBRARY_NAME=ember pnpm start || echo ''" }, "build": { "dependencies": [ diff --git a/libraries/ember/tests.webpack.js b/libraries/ember/tests.webpack.js deleted file mode 100644 index a42a8d9a9d..0000000000 --- a/libraries/ember/tests.webpack.js +++ /dev/null @@ -1,20 +0,0 @@ -/** - * @license - * Copyright 2017 Google Inc. All rights reserved. - * - * 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. - */ - -// Run basic and advanced tests through Karma -require('./src/basic-tests.js'); -require('./src/advanced-tests.js');