Fix shared state between stores

Currently stores are sharing state which causes issues in the test environment and forces state to be manually reset between test cases. This probably isn't an issue in a production environment where you would generally have a single store.

This PR adds a spec to demonstrate the issue and the appropriate fix.