Created
January 19, 2016 22:28
-
-
Save mikberg/07b4006e22aacf31ffe6 to your computer and use it in GitHub Desktop.
Relay mock module
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Relay from 'real-react-relay'; | |
export class Mutation extends Relay.Mutation { | |
_resolveProps(props) { | |
this.props = props; | |
} | |
} | |
export class MockStore { | |
reset() { | |
this.successResponse = undefined; | |
} | |
succeedWith(response) { | |
this.reset(); | |
this.successResponse = response; | |
} | |
failWith(response) { | |
this.reset(); | |
this.failureResponse = response; | |
} | |
update(callbacks) { | |
if (this.successResponse) { | |
callbacks.onSuccess(this.successResponse); | |
} else if (this.failureResponse) { | |
callbacks.onFailure(this.failureResponse); | |
} | |
this.reset(); | |
} | |
commitUpdate(mutation, callbacks) { | |
return this.update(callbacks); | |
} | |
applyUpdate(mutation, callbacks) { | |
return this.update(callbacks); | |
} | |
} | |
export const Store = new MockStore(); | |
export const Route = Relay.Route; | |
export const PropTypes = Relay.PropTypes; | |
export default { | |
QL: Relay.QL, | |
Mutation, | |
Route: Relay.Route, | |
PropTypes: Relay.PropTypes, | |
createContainer: (component, specs) => { | |
/* eslint no-param-reassign:0 */ | |
component.getRelaySpecs = () => specs; | |
return component; | |
}, | |
Store, | |
}; |
Do you know of any mock of relay modern that can be used in the same way as this one?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hey mike, have you considered adding the ability to queue responses? With this implementation if you call commitUpdate within the success callback of another commitUpdate then both of the calls must have a failure response or a success response. It's not possible for one call to fail and the next one to succeed and vice versa. I have been using this code to mock tests and it has been very helpful so far but this seems like it would be a helpful addition. Just wanted to let you know! Thanks!