dlex icon indicating copy to clipboard operation
dlex copied to clipboard

Question: Database sandbox for tests

Open martinthenth opened this issue 4 years ago • 1 comments

One problem I've had while working with Dgraph, is that Dgraph does not have a test sandbox like Ecto has for Postgres. Since Dgraph does not offer multiple databases in a single instance, I'm wondering how other developers are solving this problem.

To illustrate, when running tests: The test may create new data and fetch old data:

  1. First run: Create node with external_id: "1", returns uid: 0x1, external_id: "1"
  2. First run: Fetch node with external_id: "1", returns uid: 0x1, external_id: "1"
  3. Second run: Create node with external_id: "1", returns uid: 0x2, external_id: "1"
  4. Second run: Fetch node with external_id: "1", returns nodes with uid: 0x1, external_id: "1" and uid: 0x2, external_id: "1"

A workaround I that use, is to add first: 1 and sometimes orderasc: created_on to queries. This works, and makes tests pass using the new data; but adding code simply to make tests work is obviously bad practice.

How are others solving this?

martinthenth avatar Apr 02 '21 20:04 martinthenth

This is something I am also wondering about.. We run separate servers just for testing due to this...

m0rt3nlund avatar Apr 15 '21 06:04 m0rt3nlund