Skip to content
Snippets Groups Projects
Commit 469533e2 authored by Richard T. Carback III's avatar Richard T. Carback III
Browse files

Add test case explicit to what was happening in the manual testing for the...

Add test case explicit to what was happening in the manual testing for the duplicate upsertMessage issue
parent 36a283c1
No related branches found
No related tags found
2 merge requests!129Do not error out when this message already exists inside the DB. Instead, set...,!109Project/haven beta
......@@ -590,3 +590,68 @@ func TestWasmModel_receiveHelper_UniqueIndex(t *testing.T) {
})
}
}
func TestUpsertMessageDuplicates(t *testing.T) {
msgJSON := []byte(`{"pubkey":"4gFD38jRhf/aNDRzaguLJHHgTncs0pwvNiRvjTBOaXk=",
"dm_token":3173028031,
"nickname":"",
"message_id":"BTi+V2anHhrRAEcCMm6g2Bs9oKn7PhQzCzvM7x8Ml7A=",
"channel_id":"Gt1T8t1GcnQXijiOjX5yjiLt3F8tnPB9S70ntBx86h8D",
"parent_message_id":null,
"pinned":false,
"hidden":false,
"round":151369004,
"codeset_version":0,
"timestamp": "2023-06-06T19:39:27.281204113Z",
"lease_v2":"30000000000",
"status":2,
"type":1,
"text":"KzT25s76K9AEIv0HadhjULkU37dkCUp/8N9+5UkkA8pLEBK71P7KFMr2xii/enYr4jpQcayNm82WD4wisimkK2wtaKb0hJIELAxJHxHilF2qVcDYn7zmx2ZiYkerZGTlf7DkHPZrA+EJJIu9gZ4ApR8TNVf15GxPSDGKHV6iv7vEMrrdoi4JKOFTpNsUjjbDykc91ADmmRlh5LUR/lqyt7bEasyVY2Zo+UiZpJrUJII0fhhn0HLbfs6ekg1tkq+vbPap3vNoebLZag3nEnMk+JqNjVW93BFICSMFv8cYX9q0sSK6sgHtz0HX9b7xTEFVHlCb2Zv/ErOX2LiedsgM4aGpOvjGYQM9ludCutVJArfM/5ejupMpvVPimY69QdevqxMm6v7c8H3abLQf4iKNVoaTaRygYFYArTWWoKep7BDZhjhCd4XnILGLjq7oeBfb3enMUSmeYabIuQpjAfRXU6cZh4cVomhEbkF5kj/rAc3GLzWtN1XcE5PC8bTL3m6YVN6hMCd1S7dsnDQ4FJQoDoqYzmTLD7jtyQujS86JsPkkt7kAIi14VxHTNEAM07cN6rH4VifWWMgQo4djPJ+nnsW9zUnylT9KS1GGyeaUhGC7GmrJGd7DmfHrhdWb9iMboKyH7VTm5C6X71JW1AhmdFfjtIHmWfhbAFsrP2gwkb4e+F86urUmK5LTT6qhGklUsXsmMFjwiEUCBWLSOZLKfITkNOBGIuGGcMi8Jtvwo1f4DHQ6sm/Y8qaJFmesyVKpA3MAVNawqlZJSJXflUA/mpJprFxLm/J3mdnxkLrqQSeSCAxHgpEdH3jiSPNhmn6QaJOVT+wotm+8lAq7qWgBWfMmcVSgWdAfVwujeP71Uo1y24/Z4+jXulFz1hPfbfmHk6/Qz4JlSgHZIqgOS1FTsmXFvBUe4moHR/QFDEXnz2LroRIavt9gWZPE3z1FIcjwSmtUzvpE8gZud+dKVVrjm8YPseq+IJ/AwRRlkUR5D0vf1TwEm0yQ7E+EotFvibQ="
}`)
// Initial call
msg1 := &Message{}
err := json.Unmarshal(msgJSON, msg1)
require.NoError(t, err)
msg1.Status = 0
// Second call
msg2 := &Message{}
err = json.Unmarshal(msgJSON, msg2)
require.NoError(t, err)
msg2.Status = 1
// Final call
msg3 := &Message{}
err = json.Unmarshal(msgJSON, msg3)
require.NoError(t, err)
msg3.Status = 2
cipher, err := idbCrypto.NewCipher(
[]byte("testPass"), []byte("testSalt"), 128,
csprng.NewSystemRNG())
require.NoError(t, err)
testString := "test_duplicateUpsertMessage"
eventModel, err := newWASMModel(testString, cipher,
&dummyCbs{})
require.NoError(t, err)
uuid, err := eventModel.upsertMessage(msg1)
require.NoError(t, err)
require.NotEqual(t, uuid, 0)
uuid2, err := eventModel.upsertMessage(msg2)
require.NoError(t, err)
require.Equal(t, uuid, uuid2)
uuid3, err := eventModel.upsertMessage(msg3)
require.NoError(t, err)
require.Equal(t, uuid, uuid3)
msgID, err := message.UnmarshalID(msg1.MessageID)
require.NoError(t, err)
modelMsg, err := eventModel.GetMessage(msgID)
require.NoError(t, err)
require.Equal(t, channels.Delivered, modelMsg.Status)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment