Skip to content

Commit ed0e71d

Browse files
fix(editors/substation): make sure add new child menu always open its create wizard (openscd#912)
* fix(editors/substation-editor): Changed the eventHandler from `@action` to `@selected` at the SubStation Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> * fix(editors/bay-editor): Changed the eventHandler from `@action` to `@selected` at the Bay Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> * fix(editors/voltage-level-editor): Changed the eventHandler from `@action` to `@selected` at the Voltage level Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> * fix(editors/powertransformer-editor): Changed the eventHandler from `@action` to `@selected` at the Powertransformer Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> * fix(editors/conducting-equipment-editor): Changed the eventHandler from `@action` to `@selected` at the Conducting equipment Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> * fix(editors/function-editor): Changed the eventHandler from `@action` to `@selected` at the Function Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> * fix(editors/sub-function-editor): Changed the eventHandler from `@action` to `@selected` at the Subfunction Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> * fix(editors/eq-function-editor): Changed the eventHandler from `@action` to `@selected` at the Eq function Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> * fix(editors/eq-sub-function-editor): Changed the eventHandler from `@action` to `@selected` at the Eq sub function Editor Added test Signed-off-by: Pascal Wilbrink <[email protected]> Co-authored-by: Pascal Wilbrink <[email protected]>
1 parent cb07c07 commit ed0e71d

18 files changed

+612
-9
lines changed

src/editors/substation/bay-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ export class BayEditor extends LitElement {
198198
><mwc-menu
199199
corner="BOTTOM_RIGHT"
200200
menuCorner="END"
201-
@selected=${(e: Event) => {
201+
@action=${(e: Event) => {
202202
const tagName = (<ListItem>(<Menu>e.target).selected).value;
203203
this.openCreateWizard(tagName);
204204
}}

src/editors/substation/conducting-equipment-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ export class ConductingEquipmentEditor extends LitElement {
181181
><mwc-menu
182182
corner="BOTTOM_RIGHT"
183183
menuCorner="END"
184-
@selected=${(e: Event) => {
184+
@action=${(e: Event) => {
185185
const tagName = (<ListItem>(<Menu>e.target).selected).value;
186186
this.openCreateWizard(tagName);
187187
}}

src/editors/substation/eq-function-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ export class EqFunctionEditor extends LitElement {
151151
><mwc-menu
152152
corner="BOTTOM_RIGHT"
153153
menuCorner="END"
154-
@selected=${(e: Event) => {
154+
@action=${(e: Event) => {
155155
const tagName = (<ListItem>(<Menu>e.target).selected).value;
156156
this.openCreateWizard(tagName);
157157
}}

src/editors/substation/eq-sub-function-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export class EqSubFunctionEditor extends LitElement {
146146
><mwc-menu
147147
corner="BOTTOM_RIGHT"
148148
menuCorner="END"
149-
@selected=${(e: Event) => {
149+
@action=${(e: Event) => {
150150
const tagName = (<ListItem>(<Menu>e.target).selected).value;
151151
this.openCreateWizard(tagName);
152152
}}

src/editors/substation/function-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ export class FunctionEditor extends LitElement {
144144
><mwc-menu
145145
corner="BOTTOM_RIGHT"
146146
menuCorner="END"
147-
@selected=${(e: Event) => {
147+
@action=${(e: Event) => {
148148
const tagName = (<ListItem>(<Menu>e.target).selected).value;
149149
this.openCreateWizard(tagName);
150150
}}

src/editors/substation/powertransformer-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ export class PowerTransformerEditor extends LitElement {
188188
><mwc-menu
189189
corner="BOTTOM_RIGHT"
190190
menuCorner="END"
191-
@selected=${(e: Event) => {
191+
@action=${(e: Event) => {
192192
const tagName = (<ListItem>(<Menu>e.target).selected).value;
193193
this.openCreateWizard(tagName);
194194
}}

src/editors/substation/sub-function-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ export class SubFunctionEditor extends LitElement {
144144
><mwc-menu
145145
corner="BOTTOM_RIGHT"
146146
menuCorner="END"
147-
@selected=${(e: Event) => {
147+
@action=${(e: Event) => {
148148
const tagName = (<ListItem>(<Menu>e.target).selected).value;
149149
this.openCreateWizard(tagName);
150150
}}

src/editors/substation/substation-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ export class SubstationEditor extends LitElement {
229229
><mwc-menu
230230
corner="BOTTOM_RIGHT"
231231
menuCorner="END"
232-
@selected=${(e: Event) => {
232+
@action=${(e: Event) => {
233233
const tagName = (<ListItem>(<Menu>e.target).selected).value;
234234
this.openCreateWizard(tagName);
235235
}}

src/editors/substation/voltage-level-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ export class VoltageLevelEditor extends LitElement {
240240
><mwc-menu
241241
corner="BOTTOM_RIGHT"
242242
menuCorner="END"
243-
@selected=${(e: Event) => {
243+
@action=${(e: Event) => {
244244
const tagName = (<ListItem>(<Menu>e.target).selected).value;
245245
this.openCreateWizard(tagName);
246246
}}

test/integration/editors/substation/bay-editor-wizarding-editing.test.ts

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,42 @@ import '../../../../src/editors/substation/bay-editor.js';
77
import { BayEditor } from '../../../../src/editors/substation/bay-editor.js';
88
import { Select } from '@material/mwc-select';
99
import { WizardTextField } from '../../../../src/wizard-textfield.js';
10+
import { MenuBase } from '@material/mwc-menu/mwc-menu-base.js';
11+
import { ListItemBase } from '@material/mwc-list/mwc-list-item-base.js';
12+
13+
const openAndCancelMenu: (
14+
parent: MockWizardEditor,
15+
element: BayEditor
16+
) => Promise<void> = (
17+
parent: MockWizardEditor,
18+
element: BayEditor
19+
): Promise<void> =>
20+
new Promise(async resolve => {
21+
expect(parent.wizardUI.dialog).to.be.undefined;
22+
23+
element?.shadowRoot?.querySelector<MenuBase>("mwc-icon-button[icon='playlist_add']")!.click();
24+
const lnodeMenuItem: ListItemBase =
25+
element?.shadowRoot?.querySelector<ListItemBase>(
26+
`mwc-list-item[value='LNode']`
27+
)!;
28+
lnodeMenuItem.click();
29+
await new Promise(resolve => setTimeout(resolve, 100)); // await animation
30+
31+
expect(parent.wizardUI.dialog).to.exist;
32+
33+
const secondaryAction: HTMLElement = <HTMLElement>(
34+
parent.wizardUI.dialog?.querySelector(
35+
'mwc-button[slot="secondaryAction"]'
36+
)
37+
);
38+
39+
secondaryAction.click();
40+
await new Promise(resolve => setTimeout(resolve, 100)); // await animation
41+
42+
expect(parent.wizardUI.dialog).to.be.undefined;
43+
44+
return resolve();
45+
});
1046

1147
describe('bay-editor wizarding editing integration', () => {
1248
describe('edit wizard', () => {
@@ -415,4 +451,34 @@ describe('bay-editor wizarding editing integration', () => {
415451
).to.exist;
416452
});
417453
});
454+
455+
describe('Open add wizard', () => {
456+
let doc: XMLDocument;
457+
let parent: MockWizardEditor;
458+
let element: BayEditor | null;
459+
460+
beforeEach(async () => {
461+
doc = await fetch('/test/testfiles/zeroline/functions.scd')
462+
.then(response => response.text())
463+
.then(str => new DOMParser().parseFromString(str, 'application/xml'));
464+
parent = <MockWizardEditor>(
465+
await fixture(
466+
html`<mock-wizard-editor
467+
><bay-editor
468+
.element=${doc.querySelector('Bay')}
469+
></bay-editor
470+
></mock-wizard-editor>`
471+
)
472+
);
473+
474+
element = parent.querySelector('bay-editor');
475+
476+
await parent.updateComplete;
477+
});
478+
479+
it('Should open the same wizard for the second time', async () => {
480+
await openAndCancelMenu(parent, element!);
481+
await openAndCancelMenu(parent, element!);
482+
});
483+
});
418484
});

0 commit comments

Comments
 (0)