chore: 🤖 Upgrade addons/rose dependencies (#1973)

* chore: 🤖 Upgrade addons/rose dependencies

Upgraded `addons/rose` dependencies to match other addons. Lint fixes,
and fixed scripts for concurrently

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11587

* v4.4.1...v4.12.2

* Update ember-try.js

change scenarios to match 4.12.2

* Update addons/rose/tests/integration/components/rose/button-test.js

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>

* Update ember-try.js

originally had the right scenarios for 4.
12.2

* chore: 🤖 upgrade ember-cli-babel

Upgrade ember-cli-babel to match other addons

✅ Closes: https://hashicorp.atlassian.net/browse/ICU-11587

* Update button-test.js

fix test declaration statement

---------

Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com>
This commit is contained in:
Devon AndersonandLisbet Alvarez authored and GitHub committed 2023-11-01 15:52:00 -04:00
1 parent 861562201b
commit a574023c05
28 files changed
+187 -62

No files matched your search

+1 -1
View File
@@ -14,7 +14,7 @@
"lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"",
"lint:js": "eslint .",
"lint:js:fix": "eslint . --fix",
"format": "yarn run format:js",
"format": "concurrently \"npm:format:*\" --names \"format:\"",
"format:js": "prettier --write '{addon,app,config,stories,tests,mirage}/**/*.js' *.js",
"start": "ember serve",
"test": "ember exam --test-port 0 --split=4 --parallel=1 --random",
+1 -1
View File
@@ -21,7 +21,7 @@
"lint:hbs:fix": "ember-template-lint . --fix",
"lint:js": "eslint .",
"lint:js:fix": "eslint . --fix",
"format": "npm-run-all format:*",
"format": "concurrently \"npm:format:*\" --names \"format:\"",
"format:js": "prettier --write '{addon,app,config,stories,tests}/**/*.js' *.js",
"format:hbs": "prettier --write '{addon,app,tests}/**/*.hbs'",
"start": "ember serve",
+2 -2
View File
@@ -8,8 +8,8 @@
"disableAnalytics": false,
/**
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.
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
}
+5 -4
View File
@@ -9,12 +9,14 @@ module.exports = {
root: true,
parser: '@babel/eslint-parser',
parserOptions: {
ecmaVersion: 2018,
ecmaVersion: 'latest',
sourceType: 'module',
// This is specific babel-config. If grows consider creating a babel config file
requireConfigFile: false,
babelOptions: {
plugins: [['@babel/plugin-proposal-decorators', { legacy: true }]],
plugins: [
['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }],
],
},
// end of babel-config
},
@@ -60,8 +62,7 @@ module.exports = {
browser: false,
node: true,
},
plugins: ['node'],
extends: ['plugin:node/recommended'],
extends: ['plugin:n/recommended'],
},
{
// Test files:
+2
View File
@@ -18,6 +18,8 @@
/.gitignore
/.prettierignore
/.prettierrc.js
/.stylelintignore
/.stylelintrc.js
/.template-lintrc.js
/.travis.yml
/.watchmanconfig
+8
View File
@@ -0,0 +1,8 @@
# unconventional files
/blueprints/*/files/
# compiled output
/dist/
# addons
/.node_modules.ember-try/
+6
View File
@@ -31,5 +31,11 @@ module.exports = {
'no-passed-in-event-handlers': false,
},
},
{
files: '**/tests/**/*.{js,gts,gjs}',
rules: {
prettier: false,
},
},
],
};
@@ -5,7 +5,7 @@
<button
...attributes
type={{if @submit 'submit' 'button'}}
type={{if @onSubmit 'submit' 'button'}}
disabled={{if @disabled 'disabled'}}
class='{{if @style (concat "rose-button-" @style)}}
{{if @iconLeft "has-icon-left"}}
@@ -5,7 +5,7 @@
<button
...attributes
type={{if @submit 'submit' 'button'}}
type={{if @onSubmit 'submit' 'button'}}
disabled={{if @disabled 'disabled'}}
class='rose-dropdown-button
{{if @style (concat "rose-dropdown-button-" @style)}}
+1 -1
View File
@@ -9,7 +9,7 @@ const EmberAddon = require('ember-cli/lib/broccoli/ember-addon');
const { maybeEmbroider } = require('@embroider/test-setup');
module.exports = function (defaults) {
let app = new EmberAddon(defaults, {
const app = new EmberAddon(defaults, {
// Add options here
});
+18 -13
View File
@@ -10,15 +10,15 @@
"scripts": {
"build:development": "ember build",
"build": "ember build --environment=production && cp metadata.json dist/metadata.json",
"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": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"",
"lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"",
"lint:hbs": "ember-template-lint .",
"lint:hbs:fix": "ember-template-lint . --fix",
"lint:js": "eslint .",
"lint:js:fix": "eslint . --fix",
"lint:sass": "stylelint 'app/styles/**/*.scss'",
"lint:sass:fix": "stylelint 'app/styles/**/*.scss' --fix",
"format": "npm-run-all format:*",
"format": "concurrently \"npm:format:*\" --names \"format:\"",
"format:hbs": "prettier --write '{addon,tests}/**/*.hbs'",
"format:js": "prettier --write '{addon,app,config,stories,tests}/**/*.js' *.js",
"format:mdx": "prettier --write 'addon/**/*.mdx'",
@@ -34,7 +34,7 @@
"@hashicorp/design-system-components": "^3.0.2",
"codemirror": "5.65.7",
"ember-auto-import": "^2.6.3",
"ember-cli-babel": "^7.26.10",
"ember-cli-babel": "^7.26.11",
"ember-cli-clipboard": "^1.0.0",
"ember-cli-htmlbars": "^6.2.0",
"ember-cli-sass": "^11.0.1",
@@ -48,9 +48,10 @@
},
"devDependencies": {
"@babel/core": "^7.18.5",
"@babel/eslint-parser": "^7.18.2",
"@babel/plugin-proposal-decorators": "^7.18.6",
"@babel/eslint-parser": "^7.21.3",
"@babel/plugin-proposal-decorators": "^7.21.0",
"@ember/optional-features": "^2.0.0",
"@ember/string": "^3.0.1",
"@ember/test-helpers": "^2.9.3",
"@glimmer/component": "^1.1.2",
"@glimmer/tracking": "^1.1.2",
@@ -58,8 +59,9 @@
"babel-plugin-ember-modules-api-polyfill": "^2.12.0",
"babel-plugin-htmlbars-inline-precompile": "3",
"broccoli-asset-rev": "^3.0.0",
"concurrently": "^8.0.1",
"doctoc": "^2.2.0",
"ember-cli": "^4.12.1",
"ember-cli": "^4.12.2",
"ember-cli-dependency-checker": "^3.3.1",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
@@ -72,21 +74,21 @@
"ember-maybe-import-regenerator": "^1.0.0",
"ember-modifier": "^3.2.7",
"ember-page-title": "^7.0.0",
"ember-qunit": "^6.0.0",
"ember-qunit": "^6.2.0",
"ember-resolver": "^10.0.0",
"ember-source": "~4.12.0",
"ember-template-lint": "^4.14.0",
"ember-template-lint-plugin-prettier": "^4.0.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^5.7.2",
"ember-template-lint-plugin-prettier": "^5.0.0",
"eslint": "^8.37.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-ember": "^11.5.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-n": "^15.7.0",
"eslint-plugin-qunit": "^7.3.4",
"jest": "^27.4.7",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.31",
"prettier": "^2.7.1",
"prettier": "^3.0.0",
"qunit": "^2.19.4",
"qunit-dom": "^2.0.0",
"react": "^16",
@@ -97,6 +99,9 @@
"stylelint-config-standard-scss": "^6.0.0",
"webpack": "^5.78.0"
},
"peerDependencies": {
"ember-source": "^4.0.0"
},
"engines": {
"node": "16.* || 18.*"
},
@@ -3,7 +3,7 @@
"packages": [
{
"name": "ember-cli",
"version": "4.4.1",
"version": "4.12.2",
"blueprints": [
{
"name": "addon",
@@ -0,0 +1,58 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
'use strict';
const getChannelURL = require('ember-source-channel-url');
const { embroiderSafe, embroiderOptimized } = require('@embroider/test-setup');
module.exports = async function () {
return {
scenarios: [
{
name: 'ember-lts-4.4',
npm: {
devDependencies: {
'ember-source': '~4.4.0',
},
},
},
{
name: 'ember-lts-4.8',
npm: {
devDependencies: {
'ember-source': '~4.8.0',
},
},
},
{
name: 'ember-release',
npm: {
devDependencies: {
'ember-source': await getChannelURL('release'),
},
},
},
{
name: 'ember-beta',
npm: {
devDependencies: {
'ember-source': await getChannelURL('beta'),
},
},
},
{
name: 'ember-canary',
npm: {
devDependencies: {
'ember-source': await getChannelURL('canary'),
},
},
},
embroiderSafe(),
embroiderOptimized(),
],
};
};
@@ -6,20 +6,17 @@
'use strict';
module.exports = function (environment) {
let ENV = {
const ENV = {
modulePrefix: 'dummy',
environment,
rootURL: '/',
locationType: 'auto',
EmberENV: {
EXTEND_PROTOTYPES: false,
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: {
@@ -13,9 +13,9 @@ module('Integration | Component | rose/anonymous', function (hooks) {
test('it renders', async function (assert) {
await render(hbs`
{{#rose/anonymous tagName='main'}}
<Rose::Anonymous @tagName="main">
template block text
{{/rose/anonymous}}
</Rose::Anonymous>
`);
assert.ok(find('main'));
assert.strictEqual(this.element.textContent.trim(), 'template block text');
@@ -21,8 +21,8 @@ module('Integration | Component | rose/button', function (hooks) {
assert.strictEqual(find('button').type, 'button');
});
test('it is type="submit" when @submit={{true}}', async function (assert) {
await render(hbs`<Rose::Button @submit={{true}} />`);
test('it is type="submit" when @onSubmit={{true}}', async function (assert) {
await render(hbs`<Rose::Button @onSubmit={{true}} />`);
assert.strictEqual(find('button').type, 'submit');
});
@@ -40,18 +40,18 @@ module('Integration | Component | rose/button', function (hooks) {
test('it supports left and right icons', async function (assert) {
await render(
hbs`<Rose::Button @iconLeft="flight-icons/svg/chevron-left-16" />`
hbs`<Rose::Button @iconLeft="flight-icons/svg/chevron-left-16" />`,
);
assert.ok(find('.has-icon-left .rose-icon'));
await render(
hbs`<Rose::Button @iconRight="flight-icons/svg/chevron-left-16" />`
hbs`<Rose::Button @iconRight="flight-icons/svg/chevron-left-16" />`,
);
assert.ok(find('.has-icon-right .rose-icon'));
});
test('it supports an icon-only type', async function (assert) {
await render(
hbs`<Rose::Button @iconOnly="flight-icons/svg/chevron-left-16" />`
hbs`<Rose::Button @iconOnly="flight-icons/svg/chevron-left-16" />`,
);
assert.ok(find('.has-icon-only .rose-icon'));
});
@@ -25,7 +25,7 @@ module('Integration | Component | rose/card/link', function (hooks) {
assert.strictEqual(find('a').title, 'card title');
assert.strictEqual(
find('.rose-card-link-title').textContent.trim(),
'card title'
'card title',
);
});
@@ -33,7 +33,7 @@ module('Integration | Component | rose/card/link', function (hooks) {
await render(hbs`<Rose::Card::Link @description="card description" />`);
assert.strictEqual(
find('.rose-card-link-body').textContent.trim(),
'card description'
'card description',
);
});
@@ -41,13 +41,13 @@ module('Integration | Component | rose/card/link', function (hooks) {
await render(hbs`<Rose::Card::Link @id="card_id" />`);
assert.strictEqual(
find('.rose-card-link-footer-id').textContent.trim(),
'card_id'
'card_id',
);
});
test('it renders with @icon', async function (assert) {
await render(
hbs`<Rose::Card::Link @title="foo" @icon="flight-icons/svg/alert-circle-16" />`
hbs`<Rose::Card::Link @title="foo" @icon="flight-icons/svg/alert-circle-16" />`,
);
assert.ok(find('.rose-icon'));
});
@@ -59,7 +59,7 @@ module('Integration | Component | rose/card/link', function (hooks) {
test('it renders with content', async function (assert) {
await render(hbs`<Rose::Card::Link>
<button/>
<button type="button" />
</Rose::Card::Link>`);
assert.ok(find('button'));
});
@@ -21,8 +21,8 @@ module('Integration | Component | rose/dropdown/button', function (hooks) {
assert.strictEqual(find('button').type, 'button');
});
test('it is type="submit" when @submit={{true}}', async function (assert) {
await render(hbs`<Rose::Dropdown::Button @submit={{true}} />`);
test('it is type="submit" when @onSubmit={{true}}', async function (assert) {
await render(hbs`<Rose::Dropdown::Button @onSubmit={{true}} />`);
assert.strictEqual(find('button').type, 'submit');
});
@@ -38,7 +38,7 @@ module('Integration | Component | rose/dropdown/button', function (hooks) {
test('it supports an icon-only type', async function (assert) {
await render(
hbs`<Rose::Dropdown::Button @iconOnly="flight-icons/svg/chevron-left-16" />`
hbs`<Rose::Dropdown::Button @iconOnly="flight-icons/svg/chevron-left-16" />`,
);
assert.ok(find('.has-icon-only .rose-icon'));
});
@@ -15,7 +15,13 @@ module('Integration | Component | rose/form/actions', function (hooks) {
assert.expect(2);
this.cancel = () => {};
await render(
hbs`{{rose/form/actions cancel=this.cancel submitText='Save' cancelText='Cancel'}}`
hbs`
<Rose::Form::Actions
@cancel={{this.cancel}}
@submitText='Save'
@cancelText='Cancel'
/>
`,
);
assert.ok(find('[type="submit"]'));
assert.ok(find('button:not([type="submit"])'));
@@ -25,7 +31,15 @@ module('Integration | Component | rose/form/actions', function (hooks) {
assert.expect(2);
this.cancel = () => {};
await render(
hbs`{{rose/form/actions cancel=this.cancel submitDisabled=true cancelDisabled=true submitText='Save' cancelText='Cancel'}}`
hbs`
<Rose::Form::Actions
@cancel={{this.cancel}}
@submitText='Save'
@cancelText='Cancel'
@submitDisabled={{true}}
@cancelDisabled={{true}}
/>
`,
);
assert.ok(find('[type="submit"]:disabled'));
assert.ok(find('button:not([type="submit"]):disabled'));
@@ -33,7 +47,9 @@ module('Integration | Component | rose/form/actions', function (hooks) {
test('it optionally does not render the cancel button', async function (assert) {
assert.expect(2);
await render(hbs`{{rose/form/actions submitText='Save' showCancel=false}}`);
await render(hbs`
<Rose::Form::Actions @submitText='Save' @showCancel={{false}} />
`);
assert.ok(find('[type="submit"]'));
assert.notOk(find('button:not([type="submit"])'));
});
@@ -42,7 +58,13 @@ module('Integration | Component | rose/form/actions', function (hooks) {
assert.expect(1);
this.cancel = () => assert.ok(true, 'cancel was clicked');
await render(
hbs`{{rose/form/actions cancel=this.cancel submitText='Save' cancelText='Cancel'}}`
hbs`
<Rose::Form::Actions
@cancel={{this.cancel}}
@submitText='Save'
@cancelText='Cancel'
/>
`,
);
await click('button:not([type="submit"])');
});
@@ -17,7 +17,12 @@ module(
assert.expect(1);
this.enableEdit = () => {};
await render(
hbs`{{rose/form/actions/edit-toggle enableEdit=this.enableEdit enableEditText='Edit'}}`
hbs`
<Rose::Form::Actions::EditToggle
@enableEdit={{this.enableEdit}}
@enableEditText='Edit'
/>
`,
);
assert.ok(find('button'));
});
@@ -26,9 +31,14 @@ module(
assert.expect(1);
this.enableEdit = () => assert.ok(true, 'edit was clicked');
await render(
hbs`{{rose/form/actions/edit-toggle enableEdit=this.enableEdit enableEditText='Edit'}}`
hbs`
<Rose::Form::Actions::EditToggle
@enableEdit={{this.enableEdit}}
@enableEditText='Edit'
/>
`,
);
await click('button');
});
}
},
);
@@ -26,7 +26,7 @@ module('Integration | Component | rose/layout/body-content', function (hooks) {
test('it renders with content', async function (assert) {
await render(hbs`<Rose::Layout::BodyContent as |bc|>
<bc.Body><button id="button" /></bc.Body>
<bc.Body><button id="button" type="button" /></bc.Body>
<bc.Sidebar><p id="details">Resource Details</p></bc.Sidebar>
</Rose::Layout::BodyContent>`);
@@ -24,7 +24,7 @@ module('Integration | Component | rose/layout/page', function (hooks) {
test('it renders with content', async function (assert) {
await render(hbs`<Rose::Layout::Page>
<button id="content" />
<button id="content" type="button" />
</Rose::Layout::Page>`);
assert.ok(find('#content'));
});
@@ -44,7 +44,7 @@ module('Integration | Component | rose/table/row', function (hooks) {
test('it can be hidden', async function (assert) {
assert.expect(1);
await render(hbs`<Rose::Table::Row @hidden=true />`);
await render(hbs`<Rose::Table::Row @hidden={{true}} />`);
assert.ok(find('.rose-table-row-visually-hidden'));
});
});
@@ -50,7 +50,7 @@ module('Integration | Component | rose/table/row/cell', function (hooks) {
test('it renders with align center in a header cell', async function (assert) {
assert.expect(2);
await render(
hbs`<Rose::Table::Row::Cell @tagName='th' @alignCenter=true />`
hbs`<Rose::Table::Row::Cell @tagName='th' @alignCenter={{true}} />`,
);
assert.ok(find('.rose-table-header-cell'));
assert.ok(find('.align-center'));
@@ -58,7 +58,7 @@ module('Integration | Component | rose/table/row/cell', function (hooks) {
test('it renders with align center in a body', async function (assert) {
assert.expect(2);
await render(hbs`<Rose::Table::Row::Cell @alignCenter=true />`);
await render(hbs`<Rose::Table::Row::Cell @alignCenter={{true}} />`);
assert.ok(find('.rose-table-cell'));
assert.ok(find('.align-center'));
});
@@ -66,7 +66,7 @@ module('Integration | Component | rose/table/row/cell', function (hooks) {
test('it renders with align right in a header cell', async function (assert) {
assert.expect(2);
await render(
hbs`<Rose::Table::Row::Cell @tagName='th' @alignRight=true />`
hbs`<Rose::Table::Row::Cell @tagName='th' @alignRight={{true}} />`,
);
assert.ok(find('.rose-table-header-cell'));
assert.ok(find('.align-right'));
@@ -74,7 +74,7 @@ module('Integration | Component | rose/table/row/cell', function (hooks) {
test('it renders with align right', async function (assert) {
assert.expect(2);
await render(hbs`<Rose::Table::Row::Cell @alignRight=true />`);
await render(hbs`<Rose::Table::Row::Cell @alignRight={{true}} />`);
assert.ok(find('.rose-table-cell'));
assert.ok(find('.align-right'));
});
@@ -25,7 +25,7 @@ module('Integration | Helper | set-from-event', function (hooks) {
assert.expect(2);
this.set('inputValue', '1234');
await render(
hbs`<button value="foobar" {{on 'click' (set-from-event this 'inputValue')}} />`
hbs`<button value="foobar" type="button" {{on 'click' (set-from-event this 'inputValue')}} />`,
);
assert.deepEqual(this.inputValue, '1234');
await click('button');
@@ -30,7 +30,7 @@
</item.cell>
<item.cell>
<Rose::Button
@submit={{true}}
@onSubmit={{true}}
@disabled={{this.cannotSave}}
@style='secondary'
title={{t 'actions.add'}}
@@ -203,7 +203,7 @@
/>
{{#if (can 'save worker' @model)}}
<Rose::Button
@submit={{true}}
@onSubmit={{true}}
@style='primary'
class='nowrap'
@disabled={{@model.cannotSave}}
+16
View File
@@ -260,6 +260,15 @@
eslint-visitor-keys "^2.1.0"
semver "^6.3.0"
"@babel/eslint-parser@^7.21.3":
version "7.22.15"
resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34"
integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==
dependencies:
"@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
eslint-visitor-keys "^2.1.0"
semver "^6.3.1"
"@babel/generator@^7.15.0":
version "7.15.0"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15"
@@ -4734,6 +4743,13 @@
call-me-maybe "^1.0.1"
glob-to-regexp "^0.3.0"
"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
version "5.1.1-v1"
resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129"
integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==
dependencies:
eslint-scope "5.1.1"
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"