Compare commits

..

17 Commits

Author SHA1 Message Date
unlikelyzero
521202f492 flip playwright install 2022-03-30 16:52:46 -07:00
unlikelyzero
6955801834 Merge branch 'fix-github-actions' of https://github.com/nasa/openmct into fix-github-actions 2022-03-30 16:51:42 -07:00
Joe Pea
872d0d2e06 Merge branch 'master' into fix-github-actions 2022-03-30 15:19:21 -07:00
John Hill
f7effe8964 restrict to label events 2022-03-30 13:33:47 -07:00
John Hill
c94daac241 Merge branch 'master' into fix-github-actions 2022-03-30 13:28:31 -07:00
unlikelyzero
35e29e73ed add comment 2022-03-30 12:33:55 -07:00
unlikelyzero
ad44cd8062 pin versions again 2022-03-30 12:28:25 -07:00
unlikelyzero
ae553e2b82 reset based on doc 2022-03-30 12:10:36 -07:00
unlikelyzero
bc6856f0f1 fix build error 2022-03-30 12:08:04 -07:00
unlikelyzero
8eba1a83a3 Merge branch 'fix-github-actions' of https://github.com/nasa/openmct into fix-github-actions 2022-03-30 12:06:16 -07:00
unlikelyzero
1b187241dc add triggers for opened PRs 2022-03-30 12:06:10 -07:00
John Hill
3f6152c6ff Merge branch 'master' into fix-github-actions 2022-03-30 11:44:16 -07:00
unlikelyzero
4e32637469 check latest 2022-03-30 11:37:47 -07:00
unlikelyzero
722690ca15 Add node testing and explicit ubuntu version 2022-03-30 11:37:38 -07:00
unlikelyzero
eb7da39ceb add caching and check latest 2022-03-30 11:37:24 -07:00
unlikelyzero
8896a0dcfa remove broken functionaliyt 2022-03-30 11:36:47 -07:00
unlikelyzero
3de70079dd remove unused gha 2022-03-30 11:36:15 -07:00
9 changed files with 40 additions and 216 deletions

View File

@@ -8,7 +8,7 @@ on:
jobs:
e2e-full:
if: ${{ github.event.label.name == 'pr:e2e' }}
if: ${{ github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'pr:e2e' }} || ${{ github.event_name == 'pull_request' && github.event.action == 'opened' }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
@@ -30,8 +30,18 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: '16'
- run: npx playwright@1.19.2 install
check-latest: true
- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }}
- run: npm install
- run: npx playwright install
- run: npm run test:e2e:full
- name: Archive test results
uses: actions/upload-artifact@v2

View File

@@ -10,15 +10,25 @@ on:
jobs:
e2e-visual:
if: ${{ github.event.label.name == 'pr:visual' }} || ${{ github.event.workflow_dispatch }} || ${{ github.event.schedule }}
if: ${{ github.event.label.name == 'pr:visual' }} || ${{ github.event.workflow_dispatch }} || ${{ github.event.schedule }} || ${{ github.event_name == 'pull_request' && github.event.action == 'opened' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16'
- run: npx playwright@1.19.2 install
check-latest: true
- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }}
- run: npm install
- run: npx playwright install
- name: Run the e2e visual tests
run: npm run test:e2e:visual
env:

View File

@@ -1,21 +0,0 @@
name: "e2e"
on:
workflow_dispatch:
inputs:
version:
description: 'Which branch do you want to test?' # Limited to branch for now
required: false
default: 'master'
jobs:
e2e:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.version }}
- uses: actions/setup-node@v3
with:
node-version: '16'
- run: npm install
- name: Run the e2e tests
run: npm run test:e2e:ci

View File

@@ -6,9 +6,6 @@ on:
description: 'Which branch do you want to test?' # Limited to branch for now
required: false
default: 'master'
pull_request:
types:
- labeled
jobs:
lighthouse-pr:
if: ${{ github.event.label.name == 'pr:lighthouse' }}
@@ -56,6 +53,7 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: '16'
check-latest: true
- name: Cache node modules
uses: actions/cache@v2
env:
@@ -82,6 +80,7 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: '16'
check-latest: true
- name: Cache node modules
uses: actions/cache@v3
env:

View File

@@ -27,6 +27,7 @@ jobs:
with:
node-version: 16
registry-url: https://registry.npmjs.org/
check-latest: true
- run: npm install
- run: npm publish --access public --tag unstable
env:

View File

@@ -12,12 +12,14 @@ jobs:
fail-fast: false
matrix:
os:
- ubuntu-latest
- ubuntu-20.04 #MMOC Ubuntu version
- macos-latest
- macos-10.15
- windows-latest
node_version:
- 14
- 16
- 17
architecture:
- x64
name: Node ${{ matrix.node_version }} - ${{ matrix.architecture }} on ${{ matrix.os }}
@@ -28,6 +30,16 @@ jobs:
with:
node-version: ${{ matrix.node_version }}
architecture: ${{ matrix.architecture }}
check-latest: true
- name: Cache node modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-${{ matrix.node_version }}--build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }}
restore-keys: |
${{ runner.os }}-${{ matrix.node_version }}--build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }}
- run: npm install
- run: npm test
- run: npm run lint -- --quiet

View File

@@ -571,34 +571,6 @@ describe("the plugin", function () {
range: 2
}
}]
},
configuration: {
objectStyles: {
staticStyle: {
style: {
backgroundColor: 'rgb(0, 200, 0)',
color: '',
border: ''
}
},
conditionSetIdentifier: {
namespace: '',
key: 'testConditionSetId'
},
selectedConditionId: 'conditionId1',
defaultConditionId: 'conditionId1',
styles: [
{
conditionId: 'conditionId1',
style: {
backgroundColor: 'rgb(0, 155, 0)',
color: '',
output: '',
border: ''
}
}
]
}
}
};
@@ -843,20 +815,6 @@ describe("the plugin", function () {
});
});
it("shows styles for telemetry objects if available", (done) => {
Vue.nextTick(() => {
let conditionalStylesContainer = element.querySelectorAll(".c-plot--stacked-container .js-style-receiver");
let hasStyles = 0;
conditionalStylesContainer.forEach(el => {
if (el.style.backgroundColor !== '') {
hasStyles++;
}
});
expect(hasStyles).toBe(1);
done();
});
});
describe('limits', () => {
it('lines are not displayed by default', () => {

View File

@@ -26,10 +26,8 @@
import MctPlot from '../MctPlot.vue';
import Vue from "vue";
import conditionalStylesMixin from "./mixins/objectStyles-mixin";
export default {
mixins: [conditionalStylesMixin],
inject: ['openmct', 'domainObject', 'path'],
props: {
object: {

View File

@@ -1,143 +0,0 @@
/*****************************************************************************
* Open MCT, Copyright (c) 2014-2022, United States Government
* as represented by the Administrator of the National Aeronautics and Space
* Administration. All rights reserved.
*
* Open MCT is 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.
*
* Open MCT includes source code licensed under additional open source
* licenses. See the Open Source Licenses file (LICENSES.md) included with
* this source code distribution or the Licensing information page available
* at runtime from the About dialog for additional information.
*****************************************************************************/
import StyleRuleManager from "@/plugins/condition/StyleRuleManager";
import {STYLE_CONSTANTS} from "@/plugins/condition/utils/constants";
export default {
inject: ['openmct', 'domainObject', 'path'],
data() {
return {
objectStyle: undefined
};
},
mounted() {
this.objectStyles = this.getObjectStyleForItem(this.object.configuration);
this.initObjectStyles();
},
beforeDestroy() {
if (this.stopListeningStyles) {
this.stopListeningStyles();
}
if (this.styleRuleManager) {
this.styleRuleManager.destroy();
}
},
methods: {
getObjectStyleForItem(config) {
if (config && config.objectStyles) {
return config.objectStyles ? Object.assign({}, config.objectStyles) : undefined;
} else {
return undefined;
}
},
initObjectStyles() {
if (!this.styleRuleManager) {
this.styleRuleManager = new StyleRuleManager(this.objectStyles, this.openmct, this.updateStyle.bind(this), true);
} else {
this.styleRuleManager.updateObjectStyleConfig(this.objectStyles);
}
if (this.stopListeningStyles) {
this.stopListeningStyles();
}
this.stopListeningStyles = this.openmct.objects.observe(this.object, 'configuration.objectStyles', (newObjectStyle) => {
//Updating styles in the inspector view will trigger this so that the changes are reflected immediately
this.styleRuleManager.updateObjectStyleConfig(newObjectStyle);
});
if (this.object && this.object.configuration && this.object.configuration.fontStyle) {
const { fontSize, font } = this.object.configuration.fontStyle;
this.setFontSize(fontSize);
this.setFont(font);
}
this.stopListeningFontStyles = this.openmct.objects.observe(this.object, 'configuration.fontStyle', (newFontStyle) => {
this.setFontSize(newFontStyle.fontSize);
this.setFont(newFontStyle.font);
});
},
getStyleReceiver() {
let styleReceiver;
if (this.$el !== undefined) {
styleReceiver = this.$el.querySelector('.js-style-receiver')
|| this.$el.querySelector(':first-child');
if (styleReceiver === null) {
styleReceiver = undefined;
}
}
return styleReceiver;
},
setFontSize(newSize) {
let elemToStyle = this.getStyleReceiver();
if (elemToStyle !== undefined) {
elemToStyle.dataset.fontSize = newSize;
}
},
setFont(newFont) {
let elemToStyle = this.getStyleReceiver();
if (elemToStyle !== undefined) {
elemToStyle.dataset.font = newFont;
}
},
updateStyle(styleObj) {
let elemToStyle = this.getStyleReceiver();
if (!styleObj || elemToStyle === undefined) {
return;
}
let keys = Object.keys(styleObj);
keys.forEach(key => {
if (elemToStyle) {
if ((typeof styleObj[key] === 'string') && (styleObj[key].indexOf('__no_value') > -1)) {
if (elemToStyle.style[key]) {
elemToStyle.style[key] = '';
}
} else {
if (!styleObj.isStyleInvisible && elemToStyle.classList.contains(STYLE_CONSTANTS.isStyleInvisible)) {
elemToStyle.classList.remove(STYLE_CONSTANTS.isStyleInvisible);
} else if (styleObj.isStyleInvisible && !elemToStyle.classList.contains(styleObj.isStyleInvisible)) {
elemToStyle.classList.add(styleObj.isStyleInvisible);
}
elemToStyle.style[key] = styleObj[key];
}
}
});
if (this.object && this.object.type === 'conditionWidget' && keys.includes('output')) {
this.openmct.objects.mutate(this.object, 'conditionalLabel', styleObj.output);
} else {
this.openmct.objects.mutate(this.object, 'conditionalLabel', '');
}
}
}
};