test(persistence): add getMessagesByCid along with quotedMessage test in message, pinned message dao.
Signed-off-by: Sahil Kumar <[email protected]>
This commit is contained in:
@@ -16,19 +16,20 @@ void main() {
|
|||||||
|
|
||||||
Future<List<Message>> _prepareTestData(
|
Future<List<Message>> _prepareTestData(
|
||||||
String cid, {
|
String cid, {
|
||||||
|
bool quoted = false,
|
||||||
bool threads = false,
|
bool threads = false,
|
||||||
bool mapAllThreadToFirstMessage = false,
|
bool mapAllThreadToFirstMessage = false,
|
||||||
int count = 3,
|
int count = 3,
|
||||||
}) async {
|
}) async {
|
||||||
|
final users = List.generate(count, (index) => User(id: 'testUserId$index'));
|
||||||
final messages = List.generate(
|
final messages = List.generate(
|
||||||
count,
|
count,
|
||||||
(index) => Message(
|
(index) => Message(
|
||||||
id: 'testMessageId$cid$index',
|
id: 'testMessageId$cid$index',
|
||||||
type: 'testType',
|
type: 'testType',
|
||||||
user: User(id: 'testUserId$index'),
|
user: users[index],
|
||||||
createdAt: DateTime.now(),
|
createdAt: DateTime.now(),
|
||||||
shadowed: math.Random().nextBool(),
|
shadowed: math.Random().nextBool(),
|
||||||
showInChannel: math.Random().nextBool(),
|
|
||||||
replyCount: index,
|
replyCount: index,
|
||||||
updatedAt: DateTime.now(),
|
updatedAt: DateTime.now(),
|
||||||
extraData: {'extra_test_field': 'extraTestData'},
|
extraData: {'extra_test_field': 'extraTestData'},
|
||||||
@@ -38,17 +39,34 @@ void main() {
|
|||||||
pinnedBy: User(id: 'testUserId$index'),
|
pinnedBy: User(id: 'testUserId$index'),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
final quotedMessages = List.generate(
|
||||||
|
count,
|
||||||
|
(index) => Message(
|
||||||
|
id: 'testQuotedMessageId$cid$index',
|
||||||
|
type: 'testType',
|
||||||
|
user: users[index],
|
||||||
|
createdAt: DateTime.now(),
|
||||||
|
shadowed: math.Random().nextBool(),
|
||||||
|
replyCount: index,
|
||||||
|
updatedAt: DateTime.now(),
|
||||||
|
extraData: {'extra_test_field': 'extraTestData'},
|
||||||
|
text: 'Dummy text #$index',
|
||||||
|
quotedMessageId: messages[index].id,
|
||||||
|
pinned: math.Random().nextBool(),
|
||||||
|
pinnedAt: DateTime.now(),
|
||||||
|
pinnedBy: User(id: 'testUserId$index'),
|
||||||
|
),
|
||||||
|
);
|
||||||
final threadMessages = List.generate(
|
final threadMessages = List.generate(
|
||||||
count,
|
count,
|
||||||
(index) => Message(
|
(index) => Message(
|
||||||
id: 'testThreadMessageId$cid$index',
|
id: 'testThreadMessageId$cid$index',
|
||||||
type: 'testType',
|
type: 'testType',
|
||||||
user: User(id: 'testUserId$index'),
|
user: users[index],
|
||||||
parentId:
|
parentId:
|
||||||
mapAllThreadToFirstMessage ? messages[0].id : messages[index].id,
|
mapAllThreadToFirstMessage ? messages[0].id : messages[index].id,
|
||||||
createdAt: DateTime.now(),
|
createdAt: DateTime.now(),
|
||||||
shadowed: math.Random().nextBool(),
|
shadowed: math.Random().nextBool(),
|
||||||
showInChannel: math.Random().nextBool(),
|
|
||||||
replyCount: index,
|
replyCount: index,
|
||||||
updatedAt: DateTime.now(),
|
updatedAt: DateTime.now(),
|
||||||
extraData: {'extra_test_field': 'extraTestData'},
|
extraData: {'extra_test_field': 'extraTestData'},
|
||||||
@@ -58,7 +76,12 @@ void main() {
|
|||||||
pinnedBy: User(id: 'testUserId$index'),
|
pinnedBy: User(id: 'testUserId$index'),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
final allMessages = [...messages, if (threads) ...threadMessages];
|
final allMessages = [
|
||||||
|
...messages,
|
||||||
|
if (quoted) ...quotedMessages,
|
||||||
|
if (threads) ...threadMessages
|
||||||
|
];
|
||||||
|
await database.userDao.updateUsers(users);
|
||||||
await messageDao.updateMessages(cid, allMessages);
|
await messageDao.updateMessages(cid, allMessages);
|
||||||
return allMessages;
|
return allMessages;
|
||||||
}
|
}
|
||||||
@@ -241,6 +264,24 @@ void main() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('getMessagesByCid along with quotedMessage', () async {
|
||||||
|
const cid = 'testCid';
|
||||||
|
|
||||||
|
// Should be empty initially
|
||||||
|
final messages = await messageDao.getMessagesByCid(cid);
|
||||||
|
expect(messages, isEmpty);
|
||||||
|
|
||||||
|
// Preparing test data
|
||||||
|
final insertedMessages = await _prepareTestData(cid, quoted: true);
|
||||||
|
expect(insertedMessages, isNotEmpty);
|
||||||
|
|
||||||
|
// Fetched message should match the inserted messages
|
||||||
|
final fetchedMessages = await messageDao.getMessagesByCid(cid);
|
||||||
|
expect(fetchedMessages.length, insertedMessages.length);
|
||||||
|
final quoted = fetchedMessages.where((it) => it.quotedMessage != null);
|
||||||
|
expect(quoted.length, insertedMessages.length / 2);
|
||||||
|
});
|
||||||
|
|
||||||
test('getMessagesByCid along with pagination', () async {
|
test('getMessagesByCid along with pagination', () async {
|
||||||
const cid = 'testCid';
|
const cid = 'testCid';
|
||||||
const pagination = PaginationParams(
|
const pagination = PaginationParams(
|
||||||
|
|||||||
@@ -16,19 +16,20 @@ void main() {
|
|||||||
|
|
||||||
Future<List<Message>> _prepareTestData(
|
Future<List<Message>> _prepareTestData(
|
||||||
String cid, {
|
String cid, {
|
||||||
|
bool quoted = false,
|
||||||
bool threads = false,
|
bool threads = false,
|
||||||
bool mapAllThreadToFirstMessage = false,
|
bool mapAllThreadToFirstMessage = false,
|
||||||
int count = 3,
|
int count = 3,
|
||||||
}) async {
|
}) async {
|
||||||
|
final users = List.generate(count, (index) => User(id: 'testUserId$index'));
|
||||||
final messages = List.generate(
|
final messages = List.generate(
|
||||||
count,
|
count,
|
||||||
(index) => Message(
|
(index) => Message(
|
||||||
id: 'testMessageId$cid$index',
|
id: 'testMessageId$cid$index',
|
||||||
type: 'testType',
|
type: 'testType',
|
||||||
user: User(id: 'testUserId$index'),
|
user: users[index],
|
||||||
createdAt: DateTime.now(),
|
createdAt: DateTime.now(),
|
||||||
shadowed: math.Random().nextBool(),
|
shadowed: math.Random().nextBool(),
|
||||||
showInChannel: math.Random().nextBool(),
|
|
||||||
replyCount: index,
|
replyCount: index,
|
||||||
updatedAt: DateTime.now(),
|
updatedAt: DateTime.now(),
|
||||||
extraData: {'extra_test_field': 'extraTestData'},
|
extraData: {'extra_test_field': 'extraTestData'},
|
||||||
@@ -38,17 +39,34 @@ void main() {
|
|||||||
pinnedBy: User(id: 'testUserId$index'),
|
pinnedBy: User(id: 'testUserId$index'),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
final quotedMessages = List.generate(
|
||||||
|
count,
|
||||||
|
(index) => Message(
|
||||||
|
id: 'testQuotedMessageId$cid$index',
|
||||||
|
type: 'testType',
|
||||||
|
user: users[index],
|
||||||
|
createdAt: DateTime.now(),
|
||||||
|
shadowed: math.Random().nextBool(),
|
||||||
|
replyCount: index,
|
||||||
|
updatedAt: DateTime.now(),
|
||||||
|
extraData: {'extra_test_field': 'extraTestData'},
|
||||||
|
text: 'Dummy text #$index',
|
||||||
|
quotedMessageId: messages[index].id,
|
||||||
|
pinned: math.Random().nextBool(),
|
||||||
|
pinnedAt: DateTime.now(),
|
||||||
|
pinnedBy: User(id: 'testUserId$index'),
|
||||||
|
),
|
||||||
|
);
|
||||||
final threadMessages = List.generate(
|
final threadMessages = List.generate(
|
||||||
count,
|
count,
|
||||||
(index) => Message(
|
(index) => Message(
|
||||||
id: 'testThreadMessageId$cid$index',
|
id: 'testThreadMessageId$cid$index',
|
||||||
type: 'testType',
|
type: 'testType',
|
||||||
user: User(id: 'testUserId$index'),
|
user: users[index],
|
||||||
parentId:
|
parentId:
|
||||||
mapAllThreadToFirstMessage ? messages[0].id : messages[index].id,
|
mapAllThreadToFirstMessage ? messages[0].id : messages[index].id,
|
||||||
createdAt: DateTime.now(),
|
createdAt: DateTime.now(),
|
||||||
shadowed: math.Random().nextBool(),
|
shadowed: math.Random().nextBool(),
|
||||||
showInChannel: math.Random().nextBool(),
|
|
||||||
replyCount: index,
|
replyCount: index,
|
||||||
updatedAt: DateTime.now(),
|
updatedAt: DateTime.now(),
|
||||||
extraData: {'extra_test_field': 'extraTestData'},
|
extraData: {'extra_test_field': 'extraTestData'},
|
||||||
@@ -58,7 +76,12 @@ void main() {
|
|||||||
pinnedBy: User(id: 'testUserId$index'),
|
pinnedBy: User(id: 'testUserId$index'),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
final allMessages = [...messages, if (threads) ...threadMessages];
|
final allMessages = [
|
||||||
|
...messages,
|
||||||
|
if (quoted) ...quotedMessages,
|
||||||
|
if (threads) ...threadMessages
|
||||||
|
];
|
||||||
|
await database.userDao.updateUsers(users);
|
||||||
await pinnedMessageDao.updateMessages(cid, allMessages);
|
await pinnedMessageDao.updateMessages(cid, allMessages);
|
||||||
return allMessages;
|
return allMessages;
|
||||||
}
|
}
|
||||||
@@ -242,6 +265,24 @@ void main() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('getMessagesByCid along with quotedMessage', () async {
|
||||||
|
const cid = 'testCid';
|
||||||
|
|
||||||
|
// Should be empty initially
|
||||||
|
final messages = await pinnedMessageDao.getMessagesByCid(cid);
|
||||||
|
expect(messages, isEmpty);
|
||||||
|
|
||||||
|
// Preparing test data
|
||||||
|
final insertedMessages = await _prepareTestData(cid, quoted: true);
|
||||||
|
expect(insertedMessages, isNotEmpty);
|
||||||
|
|
||||||
|
// Fetched message should match the inserted messages
|
||||||
|
final fetchedMessages = await pinnedMessageDao.getMessagesByCid(cid);
|
||||||
|
expect(fetchedMessages.length, insertedMessages.length);
|
||||||
|
final quoted = fetchedMessages.where((it) => it.quotedMessage != null);
|
||||||
|
expect(quoted.length, insertedMessages.length / 2);
|
||||||
|
});
|
||||||
|
|
||||||
test('getMessagesByCid along with pagination', () async {
|
test('getMessagesByCid along with pagination', () async {
|
||||||
const cid = 'testCid';
|
const cid = 'testCid';
|
||||||
const pagination = PaginationParams(
|
const pagination = PaginationParams(
|
||||||
|
|||||||
Reference in New Issue
Block a user