diff --git a/test/conftest.py b/test/conftest.py
new file mode 100644
index 0000000000000000000000000000000000000000..e4a5dd3903c47b58ec91284b99eda6403f3aaf4d
--- /dev/null
+++ b/test/conftest.py
@@ -0,0 +1,46 @@
+import json
+import os
+import tempfile
+
+import pytest
+from fastapi.testclient import TestClient
+
+import larp
+
+
+@pytest.fixture
+def good_config_data():
+    return {
+        'collection-uri': 'organisation.collection'
+    }
+
+
+@pytest.fixture
+def bad_config_data():
+    return {
+        'bogus-key': 'nothing useful'
+    }
+
+
+@pytest.fixture
+def config_file(good_config_data):
+    with tempfile.NamedTemporaryFile(mode='w') as f:
+        f.write(json.dumps(good_config_data))
+        f.flush()
+        os.environ['SETTINGS_FILENAME'] = f.name
+        yield f.name
+
+
+@pytest.fixture
+def invalid_config_file(bad_config_data):
+    with tempfile.NamedTemporaryFile(mode='w') as f:
+        f.write(json.dumps(bad_config_data))
+        f.flush()
+        os.environ['SETTINGS_FILENAME'] = f.name
+        yield f.name
+
+
+@pytest.fixture
+def client(config_file):
+    app = larp.create_app()
+    yield TestClient(app)  # wait here until calling context ends
diff --git a/test/test_config.py b/test/test_config.py
new file mode 100644
index 0000000000000000000000000000000000000000..145fdd9d1d79be83ec1dab4dcfea2df256026d03
--- /dev/null
+++ b/test/test_config.py
@@ -0,0 +1,26 @@
+import io
+import json
+import pytest
+
+from pydantic.error_wrappers import ValidationError
+
+from larp import config
+
+
+def test_config_with_file(config_file):
+    params = config.load()
+    assert params
+
+
+def test_config_correct(good_config_data):
+    with io.StringIO(json.dumps(good_config_data)) as f:
+        f.seek(0)  # rewind file position to the beginning
+        params = config.load_from_file(f)
+        assert params
+
+
+def test_config_incorrect(bad_config_data):
+    with io.StringIO(json.dumps(bad_config_data)) as f:
+        f.seek(0)
+        with pytest.raises(Exception, match="'collection-uri' is a required property"):
+            config.load_from_file(f)