Skip to content

Commit b3974ac

Browse files
author
Dennis Labordus
committed
Added test and move function.
Signed-off-by: Dennis Labordus <dennis.labordus@alliander.com>
1 parent 482a817 commit b3974ac

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

src/compas/CompasLabelsField.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,16 @@ export class CompasLabelsFieldElement extends LitElement {
7777
this.requestUpdate('labels');
7878
}
7979

80+
public updateLabelsInPrivateElement(privateElement: Element): void {
81+
// We will just add or replace the complete Labels Element, so if it exists
82+
// first remove it and always add the new one.
83+
if (this.originalLabelsElement) {
84+
privateElement?.removeChild(this.originalLabelsElement);
85+
}
86+
privateElement?.append(this.newLabelsElement);
87+
this.originalLabelsElement = this.newLabelsElement;
88+
}
89+
8090
render(): TemplateResult {
8191
const labels = this.labels;
8292
return html`

src/compas/CompasSave.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,7 @@ export default class CompasSaveElement extends CompasExistsIn(LitElement) {
7676
private updateLabels() {
7777
const sclElement = this.doc.documentElement;
7878
const privateElement = getPrivate(sclElement, COMPAS_SCL_PRIVATE_TYPE);
79-
// We will just add or replace the complete Labels Element, so if it exists
80-
// first remove it and always add the new one.
81-
if (this.labelsField.originalLabelsElement) {
82-
privateElement?.removeChild(this.labelsField.originalLabelsElement);
83-
}
84-
privateElement?.append(this.labelsField.newLabelsElement);
85-
this.labelsField.originalLabelsElement = this.labelsField.newLabelsElement;
79+
this.labelsField.updateLabelsInPrivateElement(privateElement!);
8680
}
8781

8882
private async addSclToCompas(doc: XMLDocument): Promise<boolean> {

test/unit/compas/CompasLabelsField.test.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,15 @@ describe('compas-labels-field', () => {
7272
expect(labelElements.length).to.be.equal(2);
7373
});
7474

75+
it('when calling updateLabelsInPrivateElement then Private Element is updated', async () => {
76+
expect(privateElement.querySelectorAll('Label').length).to.be.equal(1);
77+
78+
await addLabel(element, 'Label2');
79+
element.updateLabelsInPrivateElement(privateElement);
80+
81+
expect(privateElement.querySelectorAll('Label').length).to.be.equal(2);
82+
});
83+
7584
it('when removing a label then label element removed', async () => {
7685
await removeLabel(element, 'Label1');
7786

0 commit comments

Comments
 (0)