mirror of
https://github.com/kemko/nomad.git
synced 2026-01-01 16:05:42 +03:00
Update to Ember 3.16/Data 3.12 (#8319)
This updates to Ember 3.16 but leaves Ember Data at 3.12 so we don’t need to use the model fragments beta. It can be reviewed on a commit-by-commit basis: blueprint updates, fixes for test failures, and the removal of now-deprecated partials. It’s not a true update to Octane as that would involve turning on template-only components by default, which breaks various things. We can accomplish that separately and then add the edition setting to package.json.
This commit is contained in:
@@ -4,7 +4,6 @@
|
||||
|
||||
root = true
|
||||
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
root: true,
|
||||
globals: {
|
||||
@@ -35,6 +37,7 @@ module.exports = {
|
||||
],
|
||||
'ember/classic-decorator-hooks': 'error',
|
||||
'ember/classic-decorator-no-classic-methods': 'error',
|
||||
'ember/no-jquery': 'error',
|
||||
},
|
||||
overrides: [
|
||||
// node files
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
import Application from '@ember/application';
|
||||
import Resolver from './resolver';
|
||||
import Resolver from 'ember-resolver';
|
||||
import loadInitializers from 'ember-load-initializers';
|
||||
import config from './config/environment';
|
||||
|
||||
let App;
|
||||
|
||||
App = class AppApplication extends Application {
|
||||
export default class App extends Application {
|
||||
modulePrefix = config.modulePrefix;
|
||||
podModulePrefix = config.podModulePrefix;
|
||||
Resolver = Resolver;
|
||||
};
|
||||
}
|
||||
|
||||
loadInitializers(App, config.modulePrefix);
|
||||
|
||||
export default App;
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
import Component from '@ember/component';
|
||||
import { tagName } from '@ember-decorators/component';
|
||||
import { inject as service } from '@ember/service';
|
||||
|
||||
@tagName('')
|
||||
export default class ForbiddenMessage extends Component {}
|
||||
export default class ForbiddenMessage extends Component {
|
||||
@service token;
|
||||
}
|
||||
|
||||
6
ui/app/components/hamburger-menu.js
Normal file
6
ui/app/components/hamburger-menu.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import Component from '@ember/component';
|
||||
import { tagName } from '@ember-decorators/component';
|
||||
|
||||
@tagName('')
|
||||
export default class HamburgerMenu extends Component {
|
||||
}
|
||||
6
ui/app/components/job-subnav.js
Normal file
6
ui/app/components/job-subnav.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import Component from '@ember/component';
|
||||
import { tagName } from '@ember-decorators/component';
|
||||
|
||||
@tagName('')
|
||||
export default class JobSubnav extends Component {
|
||||
}
|
||||
@@ -13,7 +13,7 @@ export default class ListTable extends Component {
|
||||
// Plan for a future with metadata (e.g., isSelected)
|
||||
@computed('source.[]')
|
||||
get decoratedSource() {
|
||||
return this.source.map(row => ({
|
||||
return (this.source || []).map(row => ({
|
||||
model: row,
|
||||
}));
|
||||
}
|
||||
|
||||
6
ui/app/components/loading-spinner.js
Normal file
6
ui/app/components/loading-spinner.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import Component from '@ember/component';
|
||||
import { tagName } from '@ember-decorators/component';
|
||||
|
||||
@tagName('')
|
||||
export default class LoadingSpinner extends Component {
|
||||
}
|
||||
@@ -14,7 +14,11 @@ export default class RescheduleEventRow extends Component {
|
||||
|
||||
// An allocation can also be provided directly
|
||||
@overridable('allocationId', function() {
|
||||
if (this.allocationId) {
|
||||
return this.store.findRecord('allocation', this.allocationId);
|
||||
}
|
||||
|
||||
return null;
|
||||
})
|
||||
allocation;
|
||||
|
||||
|
||||
@@ -5,11 +5,14 @@ import d3Format from 'd3-format';
|
||||
import d3Scale from 'd3-scale';
|
||||
import d3Array from 'd3-array';
|
||||
import LineChart from 'nomad-ui/components/line-chart';
|
||||
import layout from '../templates/components/line-chart';
|
||||
import formatDuration from 'nomad-ui/utils/format-duration';
|
||||
import classic from 'ember-classic-decorator';
|
||||
|
||||
@classic
|
||||
export default class StatsTimeSeries extends LineChart {
|
||||
layout = layout;
|
||||
|
||||
xProp = 'timestamp';
|
||||
yProp = 'percent';
|
||||
timeseries = true;
|
||||
|
||||
6
ui/app/components/svg-patterns.js
Normal file
6
ui/app/components/svg-patterns.js
Normal file
@@ -0,0 +1,6 @@
|
||||
import Component from '@ember/component';
|
||||
import { tagName } from '@ember-decorators/component';
|
||||
|
||||
@tagName('')
|
||||
export default class SvgPatterns extends Component {
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
import Resolver from 'ember-resolver';
|
||||
|
||||
export default Resolver;
|
||||
@@ -1,7 +1,7 @@
|
||||
import EmberRouter from '@ember/routing/router';
|
||||
import config from './config/environment';
|
||||
|
||||
class Router extends EmberRouter {
|
||||
export default class Router extends EmberRouter {
|
||||
location = config.locationType;
|
||||
rootURL = config.rootURL;
|
||||
}
|
||||
@@ -68,5 +68,3 @@ Router.map(function() {
|
||||
|
||||
this.route('not-found', { path: '/*' });
|
||||
});
|
||||
|
||||
export default Router;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<HeadLayout />
|
||||
{{title (if system.shouldShowRegions (concat system.activeRegion " - ")) "Nomad" separator=" - "}}
|
||||
{{partial "svg-patterns"}}
|
||||
<SvgPatterns />
|
||||
{{#unless error}}
|
||||
{{outlet}}
|
||||
{{else}}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{{title "Clients"}}
|
||||
<section class="section">
|
||||
{{#if isForbidden}}
|
||||
{{partial "partials/forbidden-message"}}
|
||||
<ForbiddenMessage />
|
||||
{{else}}
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-item">
|
||||
|
||||
@@ -1 +1 @@
|
||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
||||
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<nav class="navbar is-primary">
|
||||
<div class="navbar-brand">
|
||||
<span data-test-header-gutter-toggle class="gutter-toggle" aria-label="menu" onclick={{action onHamburgerClick}}>
|
||||
{{partial "partials/hamburger-menu"}}
|
||||
<HamburgerMenu />
|
||||
</span>
|
||||
<LinkTo @route="jobs" class="navbar-item is-logo">
|
||||
{{partial "partials/nomad-logo"}}
|
||||
<NomadLogo />
|
||||
</LinkTo>
|
||||
</div>
|
||||
{{#unless (media "isMobile")}}
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<div class="gutter {{if isOpen "is-open"}}">
|
||||
<header class="collapsed-menu {{if isOpen "is-open"}}">
|
||||
<span data-test-gutter-gutter-toggle class="gutter-toggle" aria-label="menu" onclick={{action onHamburgerClick}}>
|
||||
{{partial "partials/hamburger-menu"}}
|
||||
<HamburgerMenu />
|
||||
</span>
|
||||
<span class="logo-container">
|
||||
{{partial "partials/nomad-logo"}}
|
||||
<NomadLogo />
|
||||
</span>
|
||||
</header>
|
||||
<aside class="menu">
|
||||
|
||||
|
Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 236 B |
@@ -1,4 +1,4 @@
|
||||
{{partial "jobs/job/subnav"}}
|
||||
<JobSubnav @job={{@job}} />
|
||||
<section class="section">
|
||||
{{yield}}
|
||||
</section>
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<div data-test-subnav="job" class="tabs is-subnav">
|
||||
<ul>
|
||||
<li data-test-tab="overview"><LinkTo @route="jobs.job.index" @model={{job}} @activeClass="is-active">Overview</LinkTo></li>
|
||||
<li data-test-tab="definition"><LinkTo @route="jobs.job.definition" @model={{job}} @activeClass="is-active">Definition</LinkTo></li>
|
||||
<li data-test-tab="versions"><LinkTo @route="jobs.job.versions" @model={{job}} @activeClass="is-active">Versions</LinkTo></li>
|
||||
<li data-test-tab="overview"><LinkTo @route="jobs.job.index" @model={{@job}} @activeClass="is-active">Overview</LinkTo></li>
|
||||
<li data-test-tab="definition"><LinkTo @route="jobs.job.definition" @model={{@job}} @activeClass="is-active">Definition</LinkTo></li>
|
||||
<li data-test-tab="versions"><LinkTo @route="jobs.job.versions" @model={{@job}} @activeClass="is-active">Versions</LinkTo></li>
|
||||
{{#if job.supportsDeployments}}
|
||||
<li data-test-tab="deployments"><LinkTo @route="jobs.job.deployments" @model={{job}} @activeClass="is-active">Deployments</LinkTo></li>
|
||||
<li data-test-tab="deployments"><LinkTo @route="jobs.job.deployments" @model={{@job}} @activeClass="is-active">Deployments</LinkTo></li>
|
||||
{{/if}}
|
||||
<li data-test-tab="allocations"><LinkTo @route="jobs.job.allocations" @model={{job}} @activeClass="is-active">Allocations</LinkTo></li>
|
||||
<li data-test-tab="evaluations"><LinkTo @route="jobs.job.evaluations" @model={{job}} @activeClass="is-active">Evaluations</LinkTo></li>
|
||||
<li data-test-tab="allocations"><LinkTo @route="jobs.job.allocations" @model={{@job}} @activeClass="is-active">Allocations</LinkTo></li>
|
||||
<li data-test-tab="evaluations"><LinkTo @route="jobs.job.evaluations" @model={{@job}} @activeClass="is-active">Evaluations</LinkTo></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -1 +0,0 @@
|
||||
{{partial "components/line-chart"}}
|
||||
@@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<section class="section">
|
||||
{{#if isForbidden}}
|
||||
{{partial "partials/forbidden-message"}}
|
||||
<ForbiddenMessage />
|
||||
{{else}}
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-item">
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<section class="section">
|
||||
{{#if isForbidden}}
|
||||
{{partial "partials/forbidden-message"}}
|
||||
<ForbiddenMessage />
|
||||
{{else}}
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-item">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<nav class="navbar is-popup">
|
||||
<div class="navbar-brand">
|
||||
<div class="navbar-item is-logo">
|
||||
{{partial "partials/nomad-logo"}}
|
||||
<NomadLogo />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,5 +13,5 @@
|
||||
</nav>
|
||||
|
||||
<div class="exec-window loading">
|
||||
{{partial "partials/loading-spinner"}}
|
||||
<LoadingSpinner />
|
||||
</div>
|
||||
@@ -2,7 +2,7 @@
|
||||
<nav class="navbar is-popup">
|
||||
<div class="navbar-brand">
|
||||
<div class="navbar-item is-logo">
|
||||
{{partial "partials/nomad-logo"}}
|
||||
<NomadLogo />
|
||||
</div>
|
||||
</div>
|
||||
{{#if system.shouldShowRegions}}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{{title "Jobs"}}
|
||||
<section class="section">
|
||||
{{#if isForbidden}}
|
||||
{{partial "partials/forbidden-message"}}
|
||||
<ForbiddenMessage />
|
||||
{{else}}
|
||||
<div class="toolbar">
|
||||
<div class="toolbar-item">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{title "Job " job.name " allocations"}}
|
||||
{{partial "jobs/job/subnav"}}
|
||||
<JobSubnav @job={{job}} />
|
||||
<section class="section">
|
||||
{{#if allocations.length}}
|
||||
<div class="content">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{title "Job " job.name " definition"}}
|
||||
{{partial "jobs/job/subnav"}}
|
||||
<JobSubnav @job={{job}} />
|
||||
<section class="section">
|
||||
{{#unless isEditing}}
|
||||
<div class="boxed-section">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{title "Job " job.name " deployments"}}
|
||||
{{partial "jobs/job/subnav"}}
|
||||
<JobSubnav @job={{job}} />
|
||||
<section class="section">
|
||||
<JobDeploymentsStream @deployments={{model.deployments}} />
|
||||
</section>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{title "Job " job.name " evaluations"}}
|
||||
{{partial "jobs/job/subnav"}}
|
||||
<JobSubnav @job={{job}} />
|
||||
<section class="section">
|
||||
{{#if sortedEvaluations.length}}
|
||||
<ListTable
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
{{partial "jobs/job/subnav"}}
|
||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
||||
<JobSubnav @job={{job}} />
|
||||
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{{title "Job " job.name " versions"}}
|
||||
{{partial "jobs/job/subnav"}}
|
||||
<JobSubnav @job={{job}} />
|
||||
<section class="section">
|
||||
<JobVersionsStream @versions={{model.versions}} @verbose={{true}} />
|
||||
</section>
|
||||
|
||||
@@ -1 +1 @@
|
||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
||||
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<PageLayout>
|
||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
||||
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||
</PageLayout>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<div data-test-error class="empty-message">
|
||||
<h3 data-test-error-title class="empty-message-headline">Not Authorized</h3>
|
||||
<p data-test-error-message class="empty-message-body">
|
||||
{{#if token.secret}}
|
||||
Your <LinkTo @route="settings.tokens">ACL token</LinkTo> does not provide the required permissions. Contact your administrator if this is an error.
|
||||
{{else}}
|
||||
Provide an <LinkTo @route="settings.tokens">ACL token</LinkTo> with requisite permissions to view this.
|
||||
{{/if}}
|
||||
</p>
|
||||
</div>
|
||||
@@ -1,7 +1,7 @@
|
||||
{{title "Servers"}}
|
||||
<section class="section">
|
||||
{{#if isForbidden}}
|
||||
{{partial "partials/forbidden-message"}}
|
||||
<ForbiddenMessage />
|
||||
{{else}}
|
||||
<ListPagination
|
||||
@source={{sortedAgents}}
|
||||
|
||||
@@ -1 +1 @@
|
||||
<section class="section has-text-centered">{{partial "partials/loading-spinner"}}</section>
|
||||
<section class="section has-text-centered"><LoadingSpinner /></section>
|
||||
|
||||
@@ -7,5 +7,6 @@ self.deprecationWorkflow.config = {
|
||||
{ handler: 'throw', matchId: 'ember-console.deprecate-logger' },
|
||||
{ handler: 'throw', matchId: 'ember-test-helpers.rendering-context.jquery-element' },
|
||||
{ handler: 'throw', matchId: 'ember-cli-page-object.is-property' },
|
||||
{ handler: 'throw', matchId: 'ember-views.partial' },
|
||||
],
|
||||
};
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
{
|
||||
"jquery-integration": false
|
||||
"application-template-wrapper": false,
|
||||
"default-async-observers": true,
|
||||
"jquery-integration": false,
|
||||
"template-only-glimmer-components": false
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"test": "tests"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "./node_modules/ember-cli/bin/ember build -prod",
|
||||
"build": "ember build --environment=production",
|
||||
"precommit": "lint-staged",
|
||||
"lint:hbs": "ember-template-lint .",
|
||||
"lint:js": "eslint .",
|
||||
@@ -32,7 +32,9 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/plugin-proposal-object-rest-spread": "^7.4.3",
|
||||
"@ember/optional-features": "^0.7.0",
|
||||
"@ember/optional-features": "^1.3.0",
|
||||
"@glimmer/component": "^1.0.0",
|
||||
"@glimmer/tracking": "^1.0.0",
|
||||
"@hashicorp/structure-icons": "^1.3.0",
|
||||
"@storybook/ember-cli-storybook": "^0.2.0",
|
||||
"anser": "^1.4.8",
|
||||
@@ -50,55 +52,53 @@
|
||||
"d3-time-format": "^2.1.0",
|
||||
"d3-transition": "^1.1.0",
|
||||
"duration-js": "^4.0.0",
|
||||
"ember-ajax": "^5.0.0",
|
||||
"ember-auto-import": "^1.2.21",
|
||||
"ember-auto-import": "^1.5.3",
|
||||
"ember-can": "^2.0.0",
|
||||
"ember-classic-decorator": "^1.0.8",
|
||||
"ember-cli": "~3.12.0",
|
||||
"ember-cli-babel": "^7.7.3",
|
||||
"ember-cli": "~3.16.2",
|
||||
"ember-cli-babel": "^7.17.2",
|
||||
"ember-cli-clipboard": "^0.13.0",
|
||||
"ember-cli-dependency-checker": "^3.1.0",
|
||||
"ember-cli-dependency-checker": "^3.2.0",
|
||||
"ember-cli-deprecation-workflow": "^1.0.1",
|
||||
"ember-cli-eslint": "^5.1.0",
|
||||
"ember-cli-funnel": "^0.6.1",
|
||||
"ember-cli-htmlbars": "^3.0.1",
|
||||
"ember-cli-htmlbars-inline-precompile": "^2.1.0",
|
||||
"ember-cli-inject-live-reload": "^2.0.1",
|
||||
"ember-cli-htmlbars": "^4.2.2",
|
||||
"ember-cli-inject-live-reload": "^2.0.2",
|
||||
"ember-cli-mirage": "^1.1.2",
|
||||
"ember-cli-moment-shim": "^3.5.0",
|
||||
"ember-cli-page-object": "^1.17.2",
|
||||
"ember-cli-sass": "^10.0.0",
|
||||
"ember-cli-sri": "^2.1.1",
|
||||
"ember-cli-string-helpers": "^1.5.0",
|
||||
"ember-cli-template-lint": "^1.0.0-beta.1",
|
||||
"ember-cli-uglify": "^2.1.0",
|
||||
"ember-cli-template-lint": "^1.0.0-beta.3",
|
||||
"ember-cli-uglify": "^3.0.0",
|
||||
"ember-composable-helpers": "^2.0.3",
|
||||
"ember-concurrency": "^1.0.0",
|
||||
"ember-copy": "^1.0.0",
|
||||
"ember-data": "~3.12.0",
|
||||
"ember-data-model-fragments": "4.0.0",
|
||||
"ember-decorators": "^6.1.1",
|
||||
"ember-export-application-global": "^2.0.0",
|
||||
"ember-fetch": "^6.5.0",
|
||||
"ember-export-application-global": "^2.0.1",
|
||||
"ember-fetch": "^7.0.0",
|
||||
"ember-inflector": "^3.0.0",
|
||||
"ember-inline-svg": "^0.3.0",
|
||||
"ember-load-initializers": "^2.0.0",
|
||||
"ember-load-initializers": "^2.1.1",
|
||||
"ember-maybe-import-regenerator": "^0.1.6",
|
||||
"ember-moment": "^7.8.1",
|
||||
"ember-overridable-computed": "^1.0.0",
|
||||
"ember-page-title": "^5.0.2",
|
||||
"ember-power-select": "^3.0.4",
|
||||
"ember-qunit": "^4.4.1",
|
||||
"ember-qunit": "^4.6.0",
|
||||
"ember-qunit-nice-errors": "^1.2.0",
|
||||
"ember-resolver": "^5.0.1",
|
||||
"ember-resolver": "^7.0.0",
|
||||
"ember-responsive": "^3.0.4",
|
||||
"ember-sinon": "^4.0.0",
|
||||
"ember-source": "~3.12.0",
|
||||
"ember-source": "~3.16.0",
|
||||
"ember-test-selectors": "^2.1.0",
|
||||
"ember-truth-helpers": "^2.0.0",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-ember": "^6.2.0",
|
||||
"eslint-plugin-node": "^9.0.1",
|
||||
"eslint-plugin-ember": "^7.7.2",
|
||||
"eslint-plugin-node": "^11.0.0",
|
||||
"faker": "^4.1.0",
|
||||
"flat": "^4.0.0",
|
||||
"fuse.js": "^3.4.4",
|
||||
@@ -114,7 +114,7 @@
|
||||
"pretender": "^3.0.1",
|
||||
"prettier": "^1.4.4",
|
||||
"query-string": "^5.0.0",
|
||||
"qunit-dom": "^0.9.0",
|
||||
"qunit-dom": "^1.0.0",
|
||||
"sass": "^1.17.3",
|
||||
"testem": "^3.0.3",
|
||||
"testem-multi-reporter": "^1.2.0",
|
||||
@@ -134,7 +134,7 @@
|
||||
"ember-cli-string-utils": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "8.* || >= 10.*"
|
||||
"node": "10.* || >= 12"
|
||||
},
|
||||
"private": true,
|
||||
"ember-addon": {
|
||||
|
||||
@@ -11,10 +11,10 @@ export let Header = () => {
|
||||
<nav class="navbar is-primary">
|
||||
<div class="navbar-brand">
|
||||
<span class="gutter-toggle" aria-label="menu">
|
||||
{{partial "partials/hamburger-menu"}}
|
||||
<HamburgerMenu />
|
||||
</span>
|
||||
<span class="navbar-item is-logo">
|
||||
{{partial "partials/nomad-logo"}}
|
||||
<NomadLogo />
|
||||
</span>
|
||||
</div>
|
||||
<div class="navbar-end">
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/* eslint-env node */
|
||||
'use strict';
|
||||
|
||||
const MultiReporter = require('testem-multi-reporter');
|
||||
const TapReporter = require('testem/lib/reporters/tap_reporter');
|
||||
const XunitReporter = require('testem/lib/reporters/xunit_reporter');
|
||||
@@ -9,6 +10,7 @@ const config = {
|
||||
disable_watching: true,
|
||||
launch_in_ci: ['Chrome'],
|
||||
launch_in_dev: ['Chrome'],
|
||||
browser_start_timeout: 120,
|
||||
browser_args: {
|
||||
// New format in testem/master, but not in a release yet
|
||||
// Chrome: {
|
||||
|
||||
2246
ui/yarn.lock
2246
ui/yarn.lock
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user