Skip to content

Commit 94362ec

Browse files
authored
Merge branch 'master' into users/nirice/typedoc-api-extractor
2 parents cee4103 + 460d686 commit 94362ec

23 files changed

Lines changed: 929 additions & 191 deletions

packages/fast-components-react-base/src/auto-suggest/auto-suggest.spec.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,18 @@ describe("auto suggest", (): void => {
6464
expect(rendered.state("isMenuOpen")).toBe(false);
6565
});
6666

67+
test("value prop is applied", (): void => {
68+
const rendered: any = mount(
69+
<AutoSuggest listboxId="listboxId" value="test value">
70+
{itemA}
71+
{itemB}
72+
{itemC}
73+
</AutoSuggest>
74+
);
75+
76+
expect(rendered.state("value")).toBe("test value");
77+
});
78+
6779
test("input region accessibility attributes are set correctly (autocomplete='both', )", (): void => {
6880
const rendered: any = mount(
6981
<AutoSuggest listboxId="listboxId">

packages/fast-components-react-base/src/auto-suggest/auto-suggest.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ class AutoSuggest extends Foundation<
335335
this.props.onValueChange(newValue, isFromSuggestedOption);
336336
}
337337

338-
if (!isNil(this.props.value) || newValue !== this.state.value) {
338+
if (isNil(this.props.value) && newValue !== this.state.value) {
339339
this.toggleMenu(true);
340340
this.setState({
341341
value: newValue,

packages/fast-components-react-base/src/viewport-positioner/viewport-positioner.spec.tsx

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,45 @@ describe("viewport positioner", (): void => {
169169
expect(positioner.instance().state.disabled).toBe(true);
170170
});
171171

172+
test("initial state function returns correct initial state", (): void => {
173+
const anchorElement: React.RefObject<HTMLDivElement> = React.createRef<
174+
HTMLDivElement
175+
>();
176+
177+
const rendered: any = mount(
178+
<div>
179+
<div ref={anchorElement} />
180+
<ViewportPositioner
181+
viewport={document.firstElementChild as HTMLElement}
182+
anchor={anchorElement}
183+
managedClasses={managedClasses}
184+
/>
185+
</div>
186+
);
187+
188+
const positioner: any = rendered.find("BaseViewportPositioner");
189+
expect(positioner.instance()["generateInitialState"]()).toEqual({
190+
disabled: true,
191+
noObserverMode: false,
192+
xTransformOrigin: "left",
193+
yTransformOrigin: "top",
194+
xTranslate: 0,
195+
yTranslate: 0,
196+
top: null,
197+
right: null,
198+
bottom: null,
199+
left: null,
200+
currentHorizontalPosition: "undefined",
201+
currentVerticalPosition: "undefined",
202+
defaultHorizontalPosition: "undefined",
203+
defaultVerticalPosition: "bottom",
204+
horizontalSelectedPositionWidth: null,
205+
verticalSelectedPositionHeight: null,
206+
initialLayoutComplete: false,
207+
validRefChecksRemaining: 2,
208+
});
209+
});
210+
172211
test("positioning values applied correctly for specified default position - adjacent + top + left", (): void => {
173212
const anchorElement: React.RefObject<HTMLDivElement> = React.createRef<
174213
HTMLDivElement
@@ -1606,4 +1645,49 @@ describe("viewport positioner", (): void => {
16061645
expect(positionerDimension.width).toBe(110);
16071646
expect(positionerDimension.height).toBe(110);
16081647
});
1648+
1649+
test("extractElementFromRef function returns element passed in directly", (): void => {
1650+
const anchorElement: React.RefObject<HTMLDivElement> = React.createRef<
1651+
HTMLDivElement
1652+
>();
1653+
1654+
const rendered: any = mount(
1655+
<div>
1656+
<div ref={anchorElement} />
1657+
<ViewportPositioner
1658+
viewport={document.firstElementChild as HTMLElement}
1659+
anchor={anchorElement}
1660+
managedClasses={managedClasses}
1661+
/>
1662+
</div>
1663+
);
1664+
1665+
const positioner: any = rendered.find("BaseViewportPositioner");
1666+
const testElement: Element = document.createElement("div");
1667+
expect(positioner.instance()["extractElementFromRef"](testElement)).toBe(
1668+
testElement
1669+
);
1670+
});
1671+
1672+
test("extractElementFromRef function returns element passed in as a ref", (): void => {
1673+
const anchorElement: React.RefObject<HTMLDivElement> = React.createRef<
1674+
HTMLDivElement
1675+
>();
1676+
1677+
const rendered: any = mount(
1678+
<div>
1679+
<div ref={anchorElement} />
1680+
<ViewportPositioner
1681+
viewport={document.firstElementChild as HTMLElement}
1682+
anchor={anchorElement}
1683+
managedClasses={managedClasses}
1684+
/>
1685+
</div>
1686+
);
1687+
1688+
const positioner: any = rendered.find("BaseViewportPositioner");
1689+
expect(positioner.instance()["extractElementFromRef"](anchorElement)).toBe(
1690+
anchorElement.current
1691+
);
1692+
});
16091693
});

0 commit comments

Comments
 (0)