Skip to content

Commit af780c6

Browse files
committed
fix(core): ensure proper property and attribute reflection for button types
Signed-off-by: Cory Rylan <crylan@nvidia.com>
1 parent e6093dd commit af780c6

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

‎projects/core/src/forms/button-form-control-usage.test.ts‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,38 @@ describe('ButtonFormControlMixin core usage', () => {
122122
expect(button._internals.ariaExpanded).toBe('true');
123123
});
124124

125+
it('should expose native invoker property and attribute pairings',async()=>{
126+
constbutton=awaitcreateButton(usage);
127+
constcommandTarget=getElement<HTMLElement>(fixture,'#target');
128+
constinterestTarget=document.createElement('div');
129+
interestTarget.id='interest-target';
130+
constpopoverTarget=document.createElement('div');
131+
popoverTarget.id='popover-target';
132+
popoverTarget.popover='auto';
133+
fixture.append(interestTarget,popoverTarget);
134+
135+
button.setAttribute('interestfor',interestTarget.id);
136+
button.setAttribute('popovertarget',popoverTarget.id);
137+
button.setAttribute('popovertargetaction','show');
138+
awaitelementIsStable(button);
139+
140+
expect(button.commandForElement).toBe(commandTarget);
141+
expect(button.interestForElement).toBe(interestTarget);
142+
expect(button.popoverTargetElement).toBe(popoverTarget);
143+
expect(button.popoverTargetAction).toBe('show');
144+
145+
button.commandForElement=commandTarget;
146+
button.interestForElement=interestTarget;
147+
button.popoverTargetElement=popoverTarget;
148+
button.popoverTargetAction='hide';
149+
awaitelementIsStable(button);
150+
151+
expect(button.getAttribute('commandfor')).toBe('');
152+
expect(button.getAttribute('interestfor')).toBe('');
153+
expect(button.getAttribute('popovertarget')).toBe('');
154+
expect(button.getAttribute('popovertargetaction')).toBe('hide');
155+
});
156+
125157
it('should dispatch commands and suppress interaction while unavailable',async()=>{
126158
constbutton=awaitcreateButton(usage);
127159
consttarget=getElement<HTMLElement>(fixture,'#target');

0 commit comments

Comments
 (0)