diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 88e9d1fa..c45fec8f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,9 @@ jobs: - name: Lint Test App run: yarn lint working-directory: test-app + - name: Lint Docs + run: yarn lint + working-directory: docs test: name: Tests @@ -106,3 +109,21 @@ jobs: EMBER_TRY_SCENARIO: ${{ matrix.ember-try-scenario }} run: node_modules/.bin/ember try:one $EMBER_TRY_SCENARIO working-directory: test-app + + docs: + name: Docs app + runs-on: ubuntu-latest + timeout-minutes: 20 + needs: test + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 1 + - uses: volta-cli/action@v1 + with: + node-version: 12 + - name: Install Dependencies + run: yarn install --frozen-lockfile + - name: Test + run: yarn test:ember --launch ${{ matrix.browser }} + working-directory: docs diff --git a/docs/.editorconfig b/docs/.editorconfig new file mode 100644 index 00000000..c35a0024 --- /dev/null +++ b/docs/.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/docs/.ember-cli b/docs/.ember-cli new file mode 100644 index 00000000..ee64cfed --- /dev/null +++ b/docs/.ember-cli @@ -0,0 +1,9 @@ +{ + /** + Ember CLI sends analytics information by default. The data is completely + anonymous, but there are times when you might want to disable this behavior. + + Setting `disableAnalytics` to true will prevent any data from being sent. + */ + "disableAnalytics": false +} diff --git a/docs/.eslintignore b/docs/.eslintignore new file mode 100644 index 00000000..701947ed --- /dev/null +++ b/docs/.eslintignore @@ -0,0 +1,22 @@ +# unconventional js +/blueprints/*/files/ +/vendor/ + +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ +/node_modules/ + +# misc +/coverage/ +!.* +.*/ +.eslintcache + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/docs/.eslintrc.js b/docs/.eslintrc.js new file mode 100644 index 00000000..b6c0eb7c --- /dev/null +++ b/docs/.eslintrc.js @@ -0,0 +1,52 @@ +'use strict'; + +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + ecmaVersion: 2018, + sourceType: 'module', + ecmaFeatures: { + legacyDecorators: true, + }, + }, + plugins: ['ember'], + extends: [ + 'eslint:recommended', + 'plugin:ember/recommended', + 'plugin:prettier/recommended', + ], + env: { + browser: true, + }, + rules: {}, + overrides: [ + // node files + { + files: [ + './.eslintrc.js', + './.prettierrc.js', + './.template-lintrc.js', + './ember-cli-build.js', + './index.js', + './testem.js', + './blueprints/*/index.js', + './config/**/*.js', + ], + parserOptions: { + sourceType: 'script', + }, + env: { + browser: false, + node: true, + }, + plugins: ['node'], + extends: ['plugin:node/recommended'], + }, + { + // Test files: + files: ['tests/**/*-test.{js,ts}'], + extends: ['plugin:qunit/recommended'], + }, + ], +}; diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..72cc11e5 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,29 @@ +# See https://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ +/node_modules/ + +# misc +/.env* +/.pnp* +/.sass-cache +/.eslintcache +/connect.lock +/coverage/ +/libpeerconnection.log +/npm-debug.log* +/testem.log +/yarn-error.log + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try + +# editors +/.idea/ diff --git a/docs/.npmignore b/docs/.npmignore new file mode 100644 index 00000000..399ddfe2 --- /dev/null +++ b/docs/.npmignore @@ -0,0 +1,37 @@ +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ + +# misc +/.bowerrc +/.editorconfig +/.ember-cli +/.env* +/.eslintcache +/.eslintignore +/.eslintrc.js +/.git/ +/.github/ +/.gitignore +/.prettierignore +/.prettierrc.js +/.template-lintrc.js +/.travis.yml +/.watchmanconfig +/bower.json +/config/ember-try.js +/CONTRIBUTING.md +/ember-cli-build.js +/testem.js +/tests/ +/yarn-error.log +/yarn.lock +.gitkeep + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/docs/.prettierignore b/docs/.prettierignore new file mode 100644 index 00000000..92216555 --- /dev/null +++ b/docs/.prettierignore @@ -0,0 +1,21 @@ +# unconventional js +/blueprints/*/files/ +/vendor/ + +# compiled output +/dist/ +/tmp/ + +# dependencies +/bower_components/ +/node_modules/ + +# misc +/coverage/ +!.* +.eslintcache + +# ember-try +/.node_modules.ember-try/ +/bower.json.ember-try +/package.json.ember-try diff --git a/docs/.prettierrc.js b/docs/.prettierrc.js new file mode 100644 index 00000000..534e6d35 --- /dev/null +++ b/docs/.prettierrc.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + singleQuote: true, +}; diff --git a/docs/.template-lintrc.js b/docs/.template-lintrc.js new file mode 100644 index 00000000..f35f61c7 --- /dev/null +++ b/docs/.template-lintrc.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + extends: 'recommended', +}; diff --git a/docs/.watchmanconfig b/docs/.watchmanconfig new file mode 100644 index 00000000..e7834e3e --- /dev/null +++ b/docs/.watchmanconfig @@ -0,0 +1,3 @@ +{ + "ignore_dirs": ["tmp", "dist"] +} diff --git a/docs/app/app.js b/docs/app/app.js new file mode 100644 index 00000000..6a7f6c35 --- /dev/null +++ b/docs/app/app.js @@ -0,0 +1,12 @@ +import Application from '@ember/application'; +import Resolver from 'ember-resolver'; +import loadInitializers from 'ember-load-initializers'; +import config from 'docs/config/environment'; + +export default class App extends Application { + modulePrefix = config.modulePrefix; + podModulePrefix = config.podModulePrefix; + Resolver = Resolver; +} + +loadInitializers(App, config.modulePrefix); diff --git a/test-app/app/components/page-title-pane.hbs b/docs/app/components/page-title-pane.hbs similarity index 100% rename from test-app/app/components/page-title-pane.hbs rename to docs/app/components/page-title-pane.hbs diff --git a/test-app/app/components/page-title-pane/nested-template.hbs b/docs/app/components/page-title-pane/nested-template.hbs similarity index 100% rename from test-app/app/components/page-title-pane/nested-template.hbs rename to docs/app/components/page-title-pane/nested-template.hbs diff --git a/test-app/app/components/page-title-pane/nested-template.scss b/docs/app/components/page-title-pane/nested-template.scss similarity index 100% rename from test-app/app/components/page-title-pane/nested-template.scss rename to docs/app/components/page-title-pane/nested-template.scss diff --git a/test-app/app/components/window-pane.hbs b/docs/app/components/window-pane.hbs similarity index 100% rename from test-app/app/components/window-pane.hbs rename to docs/app/components/window-pane.hbs diff --git a/test-app/app/components/window-pane.scss b/docs/app/components/window-pane.scss similarity index 100% rename from test-app/app/components/window-pane.scss rename to docs/app/components/window-pane.scss diff --git a/test-app/app/helpers/highlight.js b/docs/app/helpers/highlight.js similarity index 100% rename from test-app/app/helpers/highlight.js rename to docs/app/helpers/highlight.js diff --git a/docs/app/index.html b/docs/app/index.html new file mode 100644 index 00000000..dcfb29d5 --- /dev/null +++ b/docs/app/index.html @@ -0,0 +1,26 @@ + + + + Ember Page Title + + + + + + + {{content-for "head"}} + + + + + {{content-for "head-footer"}} + + + {{content-for "body"}} + + + + + {{content-for "body-footer"}} + + diff --git a/docs/app/router.js b/docs/app/router.js new file mode 100644 index 00000000..588b8cb3 --- /dev/null +++ b/docs/app/router.js @@ -0,0 +1,11 @@ +import EmberRouter from '@ember/routing/router'; +import config from 'docs/config/environment'; + +export default class Router extends EmberRouter { + location = config.locationType; + rootURL = config.rootURL; +} + +Router.map(function () { + this.route('docs', { path: '/' }); +}); diff --git a/test-app/app/routes/docs.js b/docs/app/routes/docs.js similarity index 100% rename from test-app/app/routes/docs.js rename to docs/app/routes/docs.js diff --git a/test-app/app/styles/app.scss b/docs/app/styles/app.scss similarity index 100% rename from test-app/app/styles/app.scss rename to docs/app/styles/app.scss diff --git a/test-app/app/styles/code.scss b/docs/app/styles/code.scss similarity index 100% rename from test-app/app/styles/code.scss rename to docs/app/styles/code.scss diff --git a/test-app/app/styles/colors.scss b/docs/app/styles/colors.scss similarity index 100% rename from test-app/app/styles/colors.scss rename to docs/app/styles/colors.scss diff --git a/test-app/app/styles/components.scss b/docs/app/styles/components.scss similarity index 100% rename from test-app/app/styles/components.scss rename to docs/app/styles/components.scss diff --git a/test-app/app/styles/fonts.scss b/docs/app/styles/fonts.scss similarity index 100% rename from test-app/app/styles/fonts.scss rename to docs/app/styles/fonts.scss diff --git a/test-app/app/styles/grid.scss b/docs/app/styles/grid.scss similarity index 100% rename from test-app/app/styles/grid.scss rename to docs/app/styles/grid.scss diff --git a/test-app/app/styles/routes/docs.scss b/docs/app/styles/routes/docs.scss similarity index 100% rename from test-app/app/styles/routes/docs.scss rename to docs/app/styles/routes/docs.scss diff --git a/docs/app/templates/application.hbs b/docs/app/templates/application.hbs new file mode 100644 index 00000000..e2147cab --- /dev/null +++ b/docs/app/templates/application.hbs @@ -0,0 +1 @@ +{{outlet}} \ No newline at end of file diff --git a/test-app/app/templates/docs.hbs b/docs/app/templates/docs.hbs similarity index 99% rename from test-app/app/templates/docs.hbs rename to docs/app/templates/docs.hbs index 7b9ba18f..d318bf01 100644 --- a/test-app/app/templates/docs.hbs +++ b/docs/app/templates/docs.hbs @@ -62,7 +62,7 @@ diff --git a/docs/config/ember-cli-update.json b/docs/config/ember-cli-update.json new file mode 100644 index 00000000..b078875e --- /dev/null +++ b/docs/config/ember-cli-update.json @@ -0,0 +1,21 @@ +{ + "schemaVersion": "1.0.0", + "packages": [ + { + "name": "ember-cli", + "version": "3.28.3", + "blueprints": [ + { + "name": "addon", + "outputRepo": "https://github.com/ember-cli/ember-addon-output", + "codemodsSource": "ember-addon-codemods-manifest@1", + "isBaseBlueprint": true, + "options": [ + "--welcome", + "--yarn" + ] + } + ] + } + ] +} diff --git a/docs/config/environment.js b/docs/config/environment.js new file mode 100644 index 00000000..8fac8ba6 --- /dev/null +++ b/docs/config/environment.js @@ -0,0 +1,53 @@ +/* eslint-disable */ + +module.exports = function (environment) { + let ENV = { + modulePrefix: 'docs', + environment, + rootURL: '/', + locationType: 'auto', + EmberENV: { + FEATURES: { + // Here you can enable experimental features on an ember canary build + // e.g. EMBER_NATIVE_DECORATOR_SUPPORT: true + }, + EXTEND_PROTOTYPES: { + // Prevent Ember Data from overriding Date.parse. + Date: false, + }, + }, + + 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') { + ENV.locationType = 'hash'; + ENV.rootURL = '/ember-page-title/'; + + } + + return ENV; +}; diff --git a/docs/config/optional-features.json b/docs/config/optional-features.json new file mode 100644 index 00000000..b26286e2 --- /dev/null +++ b/docs/config/optional-features.json @@ -0,0 +1,6 @@ +{ + "application-template-wrapper": false, + "default-async-observers": true, + "jquery-integration": false, + "template-only-glimmer-components": true +} diff --git a/docs/config/targets.js b/docs/config/targets.js new file mode 100644 index 00000000..0e263268 --- /dev/null +++ b/docs/config/targets.js @@ -0,0 +1,27 @@ +'use strict'; + +const browsers = [ + 'last 1 Chrome versions', + 'last 1 Firefox versions', + 'last 1 Safari versions', +]; + +// Ember's browser support policy is changing, and IE11 support will end in +// v4.0 onwards. +// +// See https://deprecations.emberjs.com/v3.x#toc_3-0-browser-support-policy +// +// If you need IE11 support on a version of Ember that still offers support +// for it, uncomment the code block below. + +const isCI = Boolean(process.env.CI); +const isProduction = process.env.EMBER_ENV === 'production'; + +if (isCI || isProduction) { + browsers.push('ie 11'); +} + +module.exports = { + browsers, + node: 'current', // This is here to avoid "SyntaxError: Unexpected token '.'" from fastboot ember-app.js +}; diff --git a/docs/ember-cli-build.js b/docs/ember-cli-build.js new file mode 100644 index 00000000..7c021fd4 --- /dev/null +++ b/docs/ember-cli-build.js @@ -0,0 +1,43 @@ +/* eslint-env node */ +'use strict'; + +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +module.exports = function (defaults) { + let environment = EmberApp.env(); + let isDeploying = environment === 'production'; + + let app = new EmberApp(defaults, { + 'ember-cli-babel': { + includePolyfill: true, + }, + autoImport: isDeploying + ? { + publicAssetURL: 'https://ember-cli.github.io/ember-page-title', + } + : {}, + fingerprint: { + extensions: [ + 'js', + 'css', + 'png', + 'jpg', + 'gif', + 'map', + 'eot', + 'ttf', + 'woff', + 'woff2', + 'svg', + ], + prepend: '/ember-page-title/', + }, + sassOptions: { + includePaths: ['app'], + }, + svg: { + paths: ['public/assets/images'], + }, + }); + return app.toTree(); +}; diff --git a/docs/jsconfig.json b/docs/jsconfig.json new file mode 100644 index 00000000..1a22d144 --- /dev/null +++ b/docs/jsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "experimentalDecorators": true + }, + "exclude": ["tmp", "dist"] +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000..13aeb490 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,82 @@ +{ + "name": "docs", + "version": "7.0.0", + "description": "Page Titles for Ember applications", + "keywords": [ + "page title", + "title", + "component", + "fastboot" + ], + "license": "MIT", + "author": "Tim Evans ", + "repository": "https://github.com/ember-cli/ember-page-title", + "scripts": { + "build": "ember build --environment=production", + "lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"", + "lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix", + "lint:hbs": "ember-template-lint .", + "lint:hbs:fix": "ember-template-lint . --fix", + "lint:js": "eslint . --cache", + "lint:js:fix": "eslint . --fix", + "start": "ember serve", + "test": "npm-run-all lint test:*", + "test:ember": "ember test", + "format:hbs": "prettier **/*.hbs --write --parser=glimmer", + "format:js": "prettier **/*.js --write", + "release": "standard-version" + }, + "devDependencies": { + "@ember/optional-features": "^2.0.0", + "@ember/test-helpers": "^2.4.2", + "@glimmer/component": "^1.0.4", + "@glimmer/tracking": "^1.0.4", + "babel-eslint": "^10.1.0", + "broccoli-asset-rev": "^3.0.0", + "ember-auto-import": "^2.0.0", + "ember-cli": "~3.28.3", + "ember-cli-babel": "^7.26.6", + "ember-cli-code-coverage": "^1.0.0", + "ember-cli-dependency-checker": "^3.2.0", + "ember-cli-github-pages": "^0.2.2", + "ember-cli-htmlbars": "^5.7.1", + "ember-cli-inject-live-reload": "^2.1.0", + "ember-cli-sass": "^10.0.1", + "ember-cli-terser": "^4.0.2", + "ember-cli-update": "^1.0.1", + "ember-disable-prototype-extensions": "^1.1.3", + "ember-inline-svg": "^1.0.0", + "ember-load-initializers": "^2.1.2", + "ember-maybe-import-regenerator": "^1.0.0", + "ember-page-title": "8.0.0-alpha.0", + "ember-qunit": "^5.1.5", + "ember-resolver": "^8.0.3", + "ember-source": "~3.28.3", + "ember-source-channel-url": "^3.0.0", + "ember-template-lint": "^3.6.0", + "ember-truth-helpers": "^3.0.0", + "eslint": "^7.32.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-ember": "^10.5.4", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^3.4.1", + "eslint-plugin-qunit": "^6.2.0", + "loader.js": "^4.7.0", + "npm-run-all": "^4.1.5", + "prettier": "^2.3.2", + "qunit": "^2.16.0", + "sass": "^1.43.3", + "standard-version": "^9.3.2", + "webpack": "^5.0.0" + }, + "engines": { + "node": "12.* || 14.* || >= 16" + }, + "ember": { + "edition": "octane" + }, + "homepage": "https://ember-cli.github.io/ember-page-title", + "volta": { + "extends": "../package.json" + } +} diff --git a/test-app/public/assets/fonts/OfficeCodePro-Bold.eot b/docs/public/assets/fonts/OfficeCodePro-Bold.eot similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Bold.eot rename to docs/public/assets/fonts/OfficeCodePro-Bold.eot diff --git a/test-app/public/assets/fonts/OfficeCodePro-Bold.otf b/docs/public/assets/fonts/OfficeCodePro-Bold.otf similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Bold.otf rename to docs/public/assets/fonts/OfficeCodePro-Bold.otf diff --git a/test-app/public/assets/fonts/OfficeCodePro-Bold.ttf b/docs/public/assets/fonts/OfficeCodePro-Bold.ttf similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Bold.ttf rename to docs/public/assets/fonts/OfficeCodePro-Bold.ttf diff --git a/test-app/public/assets/fonts/OfficeCodePro-Bold.woff b/docs/public/assets/fonts/OfficeCodePro-Bold.woff similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Bold.woff rename to docs/public/assets/fonts/OfficeCodePro-Bold.woff diff --git a/test-app/public/assets/fonts/OfficeCodePro-Bold.woff2 b/docs/public/assets/fonts/OfficeCodePro-Bold.woff2 similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Bold.woff2 rename to docs/public/assets/fonts/OfficeCodePro-Bold.woff2 diff --git a/test-app/public/assets/fonts/OfficeCodePro-Regular.eot b/docs/public/assets/fonts/OfficeCodePro-Regular.eot similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Regular.eot rename to docs/public/assets/fonts/OfficeCodePro-Regular.eot diff --git a/test-app/public/assets/fonts/OfficeCodePro-Regular.otf b/docs/public/assets/fonts/OfficeCodePro-Regular.otf similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Regular.otf rename to docs/public/assets/fonts/OfficeCodePro-Regular.otf diff --git a/test-app/public/assets/fonts/OfficeCodePro-Regular.ttf b/docs/public/assets/fonts/OfficeCodePro-Regular.ttf similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Regular.ttf rename to docs/public/assets/fonts/OfficeCodePro-Regular.ttf diff --git a/test-app/public/assets/fonts/OfficeCodePro-Regular.woff b/docs/public/assets/fonts/OfficeCodePro-Regular.woff similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Regular.woff rename to docs/public/assets/fonts/OfficeCodePro-Regular.woff diff --git a/test-app/public/assets/fonts/OfficeCodePro-Regular.woff2 b/docs/public/assets/fonts/OfficeCodePro-Regular.woff2 similarity index 100% rename from test-app/public/assets/fonts/OfficeCodePro-Regular.woff2 rename to docs/public/assets/fonts/OfficeCodePro-Regular.woff2 diff --git a/test-app/public/assets/images/arrow.svg b/docs/public/assets/images/arrow.svg similarity index 100% rename from test-app/public/assets/images/arrow.svg rename to docs/public/assets/images/arrow.svg diff --git a/test-app/public/assets/images/ember-logo.svg b/docs/public/assets/images/ember-logo.svg similarity index 100% rename from test-app/public/assets/images/ember-logo.svg rename to docs/public/assets/images/ember-logo.svg diff --git a/test-app/public/assets/images/icon.png b/docs/public/assets/images/icon.png similarity index 100% rename from test-app/public/assets/images/icon.png rename to docs/public/assets/images/icon.png diff --git a/test-app/public/assets/images/icon.svg b/docs/public/assets/images/icon.svg similarity index 100% rename from test-app/public/assets/images/icon.svg rename to docs/public/assets/images/icon.svg diff --git a/docs/public/crossdomain.xml b/docs/public/crossdomain.xml new file mode 100644 index 00000000..0c16a7a0 --- /dev/null +++ b/docs/public/crossdomain.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + diff --git a/docs/public/robots.txt b/docs/public/robots.txt new file mode 100644 index 00000000..f5916452 --- /dev/null +++ b/docs/public/robots.txt @@ -0,0 +1,3 @@ +# http://www.robotstxt.org +User-agent: * +Disallow: diff --git a/docs/testem.js b/docs/testem.js new file mode 100644 index 00000000..e6d0e28f --- /dev/null +++ b/docs/testem.js @@ -0,0 +1,26 @@ +'use strict'; + +module.exports = { + test_page: 'tests/index.html?hidepassed', + disable_watching: true, + launch_in_ci: ['Chrome'], + launch_in_dev: ['Chrome'], + browser_start_timeout: 120, + browser_args: { + Chrome: { + ci: [ + // --no-sandbox is needed when running Chrome inside a container + process.env.CI ? '--no-sandbox' : null, + '--headless', + '--disable-dev-shm-usage', + '--disable-software-rasterizer', + '--mute-audio', + '--remote-debugging-port=0', + '--window-size=1440,900', + ].filter(Boolean), + }, + Firefox: { + ci: ['--headless'], + }, + }, +}; diff --git a/docs/tests/acceptance/docs-test.js b/docs/tests/acceptance/docs-test.js new file mode 100644 index 00000000..88fdddfe --- /dev/null +++ b/docs/tests/acceptance/docs-test.js @@ -0,0 +1,19 @@ +import { visit, fillIn } from '@ember/test-helpers'; +import { module, test } from 'qunit'; +import { setupApplicationTest } from 'ember-qunit'; +import { getPageTitle } from 'ember-page-title/test-support'; + +module('Acceptance: title', function (hooks) { + setupApplicationTest(hooks); + + test('docs page renders', async function (assert) { + await visit('/'); + assert.equal(getPageTitle(), 'Ember Page Title'); + }); + + test('user can modify title', async function (assert) { + await visit('/'); + await fillIn('[data-test-edit-title]', 'New Title'); + assert.equal(getPageTitle(), 'New Title'); + }); +}); diff --git a/docs/tests/index.html b/docs/tests/index.html new file mode 100644 index 00000000..be4c796e --- /dev/null +++ b/docs/tests/index.html @@ -0,0 +1,36 @@ + + + + ember-page-title tests + + + + + + {{content-for "head"}} {{content-for "test-head"}} + + + + + + {{content-for "head-footer"}} {{content-for "test-head-footer"}} + + + {{content-for "body"}} {{content-for "test-body"}} + +
+
+
+
+
+
+ + + + + + + + {{content-for "body-footer"}} {{content-for "test-body-footer"}} + + diff --git a/docs/tests/test-helper.js b/docs/tests/test-helper.js new file mode 100644 index 00000000..0abf5a9b --- /dev/null +++ b/docs/tests/test-helper.js @@ -0,0 +1,8 @@ +import Application from 'docs/app'; +import config from 'docs/config/environment'; +import { setApplication } from '@ember/test-helpers'; +import { start } from 'ember-qunit'; + +setApplication(Application.create(config.APP)); + +start(); diff --git a/package.json b/package.json index 4459c4ea..8b7da53f 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "private": true, "workspaces": [ "addon", + "docs", "test-app" ], "volta": { diff --git a/test-app/app/controllers/application.js b/test-app/app/controllers/application.js deleted file mode 100644 index 2ba1c340..00000000 --- a/test-app/app/controllers/application.js +++ /dev/null @@ -1,7 +0,0 @@ -import Controller from '@ember/controller'; -import { inject as service } from '@ember/service'; - -export default class ApplicationController extends Controller { - @service('router') - router; -} diff --git a/test-app/app/helpers/equals.js b/test-app/app/helpers/equals.js deleted file mode 100644 index 24c8fcd5..00000000 --- a/test-app/app/helpers/equals.js +++ /dev/null @@ -1,6 +0,0 @@ -import { isEqual } from '@ember/utils'; -import { helper } from '@ember/component/helper'; - -export default helper(function ([a, b]) { - return isEqual(a, b); -}); diff --git a/test-app/app/router.js b/test-app/app/router.js index 3a8a7a61..4d57c5dd 100644 --- a/test-app/app/router.js +++ b/test-app/app/router.js @@ -18,7 +18,6 @@ Router.map(function () { this.route('hollywood'); this.route('feed', { path: '/feeds/:name' }); this.route('reader'); - this.route('docs', { path: '/' }); this.route('fastboot', function () { this.route('multiple', function () { this.route('titles'); diff --git a/test-app/app/styles/app.css b/test-app/app/styles/app.css new file mode 100644 index 00000000..e69de29b diff --git a/test-app/app/templates/application.hbs b/test-app/app/templates/application.hbs index 17607f84..7e08d009 100644 --- a/test-app/app/templates/application.hbs +++ b/test-app/app/templates/application.hbs @@ -1,5 +1,2 @@ -{{! template-lint-disable simple-unless }} -{{#unless (equals this.router.currentRouteName 'docs')}} - {{page-title 'My App'}} -{{/unless}} +{{page-title 'My App'}} {{outlet}} \ No newline at end of file diff --git a/test-app/app/templates/posts.hbs b/test-app/app/templates/posts.hbs index 4ab1ef56..bb625063 100644 --- a/test-app/app/templates/posts.hbs +++ b/test-app/app/templates/posts.hbs @@ -1 +1 @@ -{{page-title 'Posts'}} \ No newline at end of file +{{page-title 'Posts'}} diff --git a/test-app/package.json b/test-app/package.json index baf1b066..dca53429 100644 --- a/test-app/package.json +++ b/test-app/package.json @@ -38,7 +38,6 @@ "@glimmer/component": "^1.0.4", "@glimmer/tracking": "^1.0.4", "babel-eslint": "^10.1.0", - "broccoli-asset-rev": "^3.0.0", "ember-auto-import": "^2.0.0", "ember-cli": "~3.28.3", "ember-cli-babel": "^7.26.6", @@ -46,14 +45,10 @@ "ember-cli-dependency-checker": "^3.2.0", "ember-cli-fastboot": "^3.2.0-beta.4", "ember-cli-fastboot-testing": "^0.5.0", - "ember-cli-github-pages": "^0.2.2", "ember-cli-htmlbars": "^5.7.1", "ember-cli-inject-live-reload": "^2.1.0", - "ember-cli-sass": "^10.0.1", - "ember-cli-terser": "^4.0.2", "ember-cli-update": "^1.0.1", "ember-disable-prototype-extensions": "^1.1.3", - "ember-inline-svg": "^1.0.0", "ember-load-initializers": "^2.1.2", "ember-maybe-import-regenerator": "^1.0.0", "ember-page-title": "8.0.0-alpha.0", @@ -74,7 +69,6 @@ "npm-run-all": "^4.1.5", "prettier": "^2.3.2", "qunit": "^2.16.0", - "sass": "^1.43.3", "standard-version": "^9.3.2", "webpack": "^5.0.0" }, diff --git a/test-app/tests/blanket-options.js b/test-app/tests/blanket-options.js deleted file mode 100644 index 67fd537a..00000000 --- a/test-app/tests/blanket-options.js +++ /dev/null @@ -1,18 +0,0 @@ -/* globals blanket, module */ - -var options = { - modulePrefix: 'ember-page-title', - filter: '//.*ember-page-title/.*/', - antifilter: '//.*(tests|template).*/', - loaderExclusions: [], - enableCoverage: true, - cliOptions: { - reporters: ['lcov'], - autostart: true, - }, -}; -if (typeof exports === 'undefined') { - blanket.options(options); -} else { - module.exports = options; -}