mirror of
https://github.com/prymitive/karma
synced 2026-05-09 03:36:44 +00:00
Merge pull request #956 from prymitive/fix-upgrade-story
chore(ui): pass upgrade screen reload timer as props
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 (
|
||||
|
||||
@@ -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([]);
|
||||
|
||||
Reference in New Issue
Block a user