Merge pull request #956 from prymitive/fix-upgrade-story

chore(ui): pass upgrade screen reload timer as props
This commit is contained in:
Łukasz Mierzwa
2019-09-18 12:35:55 +01:00
committed by GitHub
4 changed files with 18 additions and 7 deletions

View File

@@ -9,7 +9,8 @@ import "csshake/scss/csshake-slow.scss";
class UpgradeNeeded extends Component {
static propTypes = {
newVersion: PropTypes.string.isRequired
newVersion: PropTypes.string.isRequired,
reloadAfter: PropTypes.number.isRequired
};
reloadApp = () => {
@@ -17,7 +18,8 @@ class UpgradeNeeded extends Component {
};
componentDidMount() {
this.timer = setTimeout(this.reloadApp, 3000);
const { reloadAfter } = this.props;
this.timer = setTimeout(this.reloadApp, reloadAfter);
}
componentWillUnmount() {

View File

@@ -18,7 +18,9 @@ afterEach(() => {
describe("<UpgradeNeeded />", () => {
it("matches snapshot", () => {
const tree = shallow(<UpgradeNeeded newVersion="1.2.3" />);
const tree = shallow(
<UpgradeNeeded newVersion="1.2.3" reloadAfter={100000000} />
);
expect(toDiffableHtml(tree.html())).toMatchSnapshot();
});
@@ -26,13 +28,15 @@ describe("<UpgradeNeeded />", () => {
const reloadSpy = jest
.spyOn(global.window.location, "reload")
.mockImplementation(() => {});
mount(<UpgradeNeeded newVersion="1.2.3" />);
mount(<UpgradeNeeded newVersion="1.2.3" reloadAfter={100000000} />);
jest.runOnlyPendingTimers();
expect(reloadSpy).toBeCalled();
});
it("timer is cleared on unmount", () => {
const tree = mount(<UpgradeNeeded newVersion="1.2.3" />);
const tree = mount(
<UpgradeNeeded newVersion="1.2.3" reloadAfter={100000000} />
);
const instance = tree.instance();
instance.componentWillUnmount();

View File

@@ -27,7 +27,12 @@ const Grid = observer(
}
if (alertStore.info.upgradeNeeded) {
return <UpgradeNeeded newVersion={alertStore.info.version} />;
return (
<UpgradeNeeded
newVersion={alertStore.info.version}
reloadAfter={3000}
/>
);
}
if (

View File

@@ -81,7 +81,7 @@ storiesOf("Grid", module)
return <FatalError message="Something failed" />;
})
.add("UpgradeNeeded", () => {
return <UpgradeNeeded newVersion="1.2.3" />;
return <UpgradeNeeded newVersion="1.2.3" reloadAfter={100000000} />;
})
.add("AlertGrid", () => {
const alertStore = new AlertStore([]);