Mailspring/packages/local-sync/src/new-message-processor/spec/threading-spec.js
Juan Tejada a9be3bb3ed [local-sync]: Refactor message ingestion to write new messages only once
This will only generate 1 delta per new message instead of 2
Adds a MessageFactory to create messages from imapmessage objects, and
unifies and cleans up that logic
Also modified the message-processor to be more suited for local sync,
made emphasis that it's only for processing new messages, and got rid of
the while "pipeline" concept

- TODO message-processor specs are broken
2016-11-29 11:24:27 -08:00

58 lines
1.4 KiB
JavaScript

const path = require('path')
const fs = require('fs')
const LocalDatabaseConnector = require('../../shared/local-database-connector')
const {processMessage} = require('../processors/threading')
const BASE_PATH = path.join(__dirname, 'fixtures')
it('adds the message to the thread', (done) => {
const {message, reply} = require(`${BASE_PATH}/thread`)
const accountId = 'a-1'
const mockDb = {
Thread: {
findAll: () => {
return Promise.resolve([
{
id: 1,
subject: "Loved your work and interests",
messages: [message],
}])
},
find: () => {
return Promise.resolve(null)
},
create: (thread) => {
thread.id = 1
thread.addMessage = (message) => {
if (thread.messages) {
thread.messages.push(message.id)
} else {
thread.messages = [message.id]
}
}
return Promise.resolve(thread)
}
},
Message: {
findAll: () => {
return Promise.resolve([message, reply])
},
find: () => {
return Promise.resolve(reply)
},
create: (message) => {
message.setThread = (thread) => {
message.thread = thread.id
}
return Promise.resolve(message)
}
}
}
processMessage({db: mockDb, message: reply, accountId}).then((processed) => {
expect(processed.thread).toBe(1)
done()
})
})