refactor voteInfo to include event instead of eventid and startDate
This commit is contained in:
		@@ -29,11 +29,16 @@ describe('vote controller - none_of_that functions', () => {
 | 
			
		||||
			id: 'mockId'
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	const mockEvent: GuildScheduledEvent = <GuildScheduledEvent><unknown>{
 | 
			
		||||
		scheduledStartAt: testEventDate,
 | 
			
		||||
		id: testEventId,
 | 
			
		||||
		guild: testGuildId
 | 
			
		||||
	}
 | 
			
		||||
	const mockJellyfinHandler: JellyfinHandler = <JellyfinHandler><unknown>{
 | 
			
		||||
		getRandomMovieNames: jest.fn().mockReturnValue(["movie1"])
 | 
			
		||||
	}
 | 
			
		||||
	const votes = new VoteController(mockClient, mockJellyfinHandler)
 | 
			
		||||
	const mockMessageContent = votes.createVoteMessageText(testEventId, testEventDate, testMovies, testGuildId, "requestId")
 | 
			
		||||
	const mockMessageContent = votes.createVoteMessageText(mockEvent, testMovies, testGuildId, "requestId")
 | 
			
		||||
 | 
			
		||||
	test('sendVoteClosedMessage', async () => {
 | 
			
		||||
		mockClient.getAnnouncementChannelForGuild = jest.fn().mockReturnValue({
 | 
			
		||||
@@ -57,29 +62,6 @@ describe('vote controller - none_of_that functions', () => {
 | 
			
		||||
			content: `[Abstimmung beendet] für https://discord.com/events/${testGuildId}/${testEventId}\n<@&WATCHPARTY_ANNOUNCEMENT_ROLE> Wir gucken MovieNew am 01.01. um 01:00`
 | 
			
		||||
		})
 | 
			
		||||
	})
 | 
			
		||||
	//	test('checkForPollsToClose', async () => {
 | 
			
		||||
	//
 | 
			
		||||
	//		const testGuild: Guild = <Guild><unknown>{
 | 
			
		||||
	//			scheduledEvents: {
 | 
			
		||||
	//				fetch: jest.fn().mockImplementation(() => {
 | 
			
		||||
	//					return new Promise(resolve => {
 | 
			
		||||
	//						resolve([
 | 
			
		||||
	//							{ name: "Event Name" },
 | 
			
		||||
	//							{ name: "Event: VOTING OFFEN", scheduledStartTimestamp: "" },
 | 
			
		||||
	//							{ name: "another voting" },
 | 
			
		||||
	//						]
 | 
			
		||||
	//						)
 | 
			
		||||
	//					})
 | 
			
		||||
	//				})
 | 
			
		||||
	//			}
 | 
			
		||||
	//		}
 | 
			
		||||
	//
 | 
			
		||||
	//		const result = await votes.checkForPollsToClose(testGuild)
 | 
			
		||||
	//
 | 
			
		||||
	//
 | 
			
		||||
	//
 | 
			
		||||
	//
 | 
			
		||||
	//	})
 | 
			
		||||
 | 
			
		||||
	test('getVotesByEmote', async () => {
 | 
			
		||||
		const mockMessage: Message = <Message><unknown>{
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
import { Emoji, NONE_OF_THAT } from "../../server/constants"
 | 
			
		||||
import VoteController, { Vote, VoteMessageInfo } from "../../server/helper/vote.controller"
 | 
			
		||||
import VoteController, { VoteMessageInfo } from "../../server/helper/vote.controller"
 | 
			
		||||
import { JellyfinHandler } from "../../server/jellyfin/handler"
 | 
			
		||||
import { ExtendedClient } from "../../server/structures/client"
 | 
			
		||||
import { VoteMessage } from "../../server/helper/messageIdentifiers"
 | 
			
		||||
import { Message, MessageReaction } from "discord.js"
 | 
			
		||||
import { GuildScheduledEvent, MessageReaction } from "discord.js"
 | 
			
		||||
test('parse votes from vote message', async () => {
 | 
			
		||||
	const testMovies = [
 | 
			
		||||
		'Movie1',
 | 
			
		||||
@@ -16,12 +16,16 @@ test('parse votes from vote message', async () => {
 | 
			
		||||
	const testEventDate = new Date('2023-01-01')
 | 
			
		||||
	const testGuildId = "888999888"
 | 
			
		||||
	const voteController: VoteController = new VoteController(<ExtendedClient>{}, <JellyfinHandler>{})
 | 
			
		||||
	const testMessage = voteController.createVoteMessageText(testEventId, testEventDate, testMovies, testGuildId, "requestId")
 | 
			
		||||
	const mockEvent: GuildScheduledEvent = <GuildScheduledEvent><unknown>{
 | 
			
		||||
		scheduledStartAt: testEventDate,
 | 
			
		||||
		id: testEventId,
 | 
			
		||||
		guild: testGuildId
 | 
			
		||||
	}
 | 
			
		||||
	const testMessage = voteController.createVoteMessageText(mockEvent, testMovies, testGuildId, "requestId")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	const expectedResult: VoteMessageInfo = {
 | 
			
		||||
		eventId: testEventId,
 | 
			
		||||
		eventDate: testEventDate,
 | 
			
		||||
		event: mockEvent,
 | 
			
		||||
		votes: [
 | 
			
		||||
			{ emote: Emoji.one, count: 1, movie: testMovies[0] },
 | 
			
		||||
			{ emote: Emoji.two, count: 2, movie: testMovies[1] },
 | 
			
		||||
@@ -40,6 +44,8 @@ test('parse votes from vote message', async () => {
 | 
			
		||||
				fetch: jest.fn().mockImplementation((input: any) => {
 | 
			
		||||
					if (input === testEventId)
 | 
			
		||||
						return {
 | 
			
		||||
							id: testEventId,
 | 
			
		||||
							guild: testGuildId,
 | 
			
		||||
							scheduledStartAt: testEventDate
 | 
			
		||||
						}
 | 
			
		||||
				})
 | 
			
		||||
@@ -61,8 +67,8 @@ test('parse votes from vote message', async () => {
 | 
			
		||||
	const result = await voteController.parseVoteInfoFromVoteMessage(message, 'requestId')
 | 
			
		||||
	console.log(JSON.stringify(result))
 | 
			
		||||
	expect(Array.isArray(result)).toBe(false)
 | 
			
		||||
	expect(result.eventId).toEqual(testEventId)
 | 
			
		||||
	expect(result.eventDate).toEqual(testEventDate)
 | 
			
		||||
	expect(result.event.id).toEqual(testEventId)
 | 
			
		||||
	expect(result.event.scheduledStartAt).toEqual(testEventDate)
 | 
			
		||||
	expect(result.votes.length).toEqual(expectedResult.votes.length)
 | 
			
		||||
	expect(result).toEqual(expectedResult)
 | 
			
		||||
})
 | 
			
		||||
@@ -79,7 +85,12 @@ test('parse votes from vote message', () => {
 | 
			
		||||
	const testEventDate = new Date('2023-01-01')
 | 
			
		||||
	const testGuildId = "888999888"
 | 
			
		||||
	const voteController: VoteController = new VoteController(<ExtendedClient>{}, <JellyfinHandler>{})
 | 
			
		||||
	const testMessage = voteController.createVoteMessageText(testEventId, testEventDate, testMovies, testGuildId, "requestId")
 | 
			
		||||
	const mockEvent: GuildScheduledEvent = <GuildScheduledEvent><unknown>{
 | 
			
		||||
		scheduledStartAt: testEventDate,
 | 
			
		||||
		id: testEventId,
 | 
			
		||||
		guild: testGuildId
 | 
			
		||||
	}
 | 
			
		||||
	const testMessage = voteController.createVoteMessageText(mockEvent, testMovies, testGuildId, "requestId")
 | 
			
		||||
 | 
			
		||||
	const result = voteController.parseGuildIdAndEventIdFromWholeMessage(testMessage)
 | 
			
		||||
	expect(result).toEqual({ guildId: testGuildId, eventId: testEventId })
 | 
			
		||||
@@ -108,7 +119,12 @@ test.skip('handles complete none_of_that vote', () => {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	const voteController = new VoteController(mockClient, mockJellyfinHandler)
 | 
			
		||||
	const mockMessageContent = voteController.createVoteMessageText(testEventId, testEventDate, testMovies, testGuildId, "requestId")
 | 
			
		||||
	const mockEvent: GuildScheduledEvent = <GuildScheduledEvent><unknown>{
 | 
			
		||||
		scheduledStartAt: testEventDate,
 | 
			
		||||
		id: testEventId,
 | 
			
		||||
		guild: testGuildId
 | 
			
		||||
	}
 | 
			
		||||
	const mockMessageContent = voteController.createVoteMessageText(mockEvent, testMovies, testGuildId, "requestId")
 | 
			
		||||
	const reactedUponMessage: VoteMessage = <VoteMessage><unknown>{
 | 
			
		||||
		cleanContent: mockMessageContent,
 | 
			
		||||
		guild: {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user