diff --git a/app/migrator/migrator_test.go b/app/migrator/migrator_test.go
new file mode 100644
index 00000000..9558bb33
--- /dev/null
+++ b/app/migrator/migrator_test.go
@@ -0,0 +1,64 @@
+package migrator
+
+import (
+ "io/ioutil"
+ "os"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+ "github.com/umputun/remark/app/store"
+)
+
+func TestMigrator_ImportDisqus(t *testing.T) {
+ defer func() {
+ os.Remove("/tmp/remark-test.db")
+ os.Remove("/tmp/disqus-test.xml")
+ }()
+
+ err := ioutil.WriteFile("/tmp/disqus-test.xml", []byte(xmlTest), 0600)
+ require.Nil(t, err)
+
+ dataStore, err := store.NewBoltDB(store.BoltSite{FileName: "/tmp/remark-test.db", SiteID: "test"})
+ require.Nil(t, err, "create store")
+
+ err = ImportComments(ImportParams{
+ DataStore: dataStore,
+ InputFile: "/tmp/disqus-test.xml",
+ SiteID: "test",
+ Provider: "disqus",
+ })
+ assert.Nil(t, err)
+
+ last, err := dataStore.Last("test", 10)
+ assert.Nil(t, err)
+ assert.Equal(t, 3, len(last), "3 comments imported")
+}
+
+func TestMigrator_ImportRemark(t *testing.T) {
+ defer func() {
+ os.Remove("/tmp/remark-test.db")
+ os.Remove("/tmp/disqus-test.r42")
+ }()
+
+ data := `{"id":"efbc17f177ee1a1c0ee6e1e025749966ec071adc","pid":"","text":"some text, link","user":{"name":"user name","id":"user1","picture":"","profile":"","admin":false},"locator":{"site":"radio-t","url":"https://radio-t.com"},"score":0,"votes":{},"time":"2017-12-20T15:18:22-06:00"}` + "\n" +
+ `{"id":"afbc17f177ee1a1c0ee6e1e025749966ec071adc","pid":"efbc17f177ee1a1c0ee6e1e025749966ec071adc","text":"some text2, link","user":{"name":"user name","id":"user1","picture":"","profile":"","admin":false},"locator":{"site":"radio-t","url":"https://radio-t.com"},"score":0,"votes":{},"time":"2017-12-20T15:18:23-06:00"}` + "\n"
+
+ err := ioutil.WriteFile("/tmp/disqus-test.r42", []byte(data), 0600)
+ require.Nil(t, err)
+
+ dataStore, err := store.NewBoltDB(store.BoltSite{FileName: "/tmp/remark-test.db", SiteID: "radio-t"})
+ require.Nil(t, err, "create store")
+
+ err = ImportComments(ImportParams{
+ DataStore: dataStore,
+ InputFile: "/tmp/disqus-test.r42",
+ SiteID: "radio-t",
+ Provider: "native",
+ })
+ assert.Nil(t, err)
+
+ last, err := dataStore.Last("radio-t", 10)
+ assert.Nil(t, err)
+ assert.Equal(t, 2, len(last), "2 comments imported")
+}