import { ANOTHER_DATE, A_DATE, A_SUGGESTION_ID, A_USER_ID, SOME_DATE, SOME_NEWER_DATE, SOME_NEWER_SUGGESTION_ID, } from "../../../utils/tests/testData"; import SuggestionsData from "../repositories/suggestionsData.entity"; import { getSuggestionsDataRepository } from "../repositories/suggestionsData.repository"; import SuggestionsMetadata from "../repositories/suggestionsMetadata.entity"; import { getSuggestionsMetadataRepository } from "../repositories/suggestionsMetadata.repository"; import SuggestionItem from "../SuggestionItem"; import { NewPostSuggestions } from "./types"; export function someSuggestions(user?: string): SuggestionItem[] { return [ { id: 123, user, time: A_DATE, original_prefix: "some original_prefix", original_suffix: "some original_suffix", snapshot_prefix: "some snapshot_prefix", snapshot_suffix: "some snapshot_suffix", language: "some language", filename: "some filename", }, { id: 124, user, time: ANOTHER_DATE, original_prefix: "different original_prefix", original_suffix: "different original_suffix", snapshot_prefix: "different snapshot_prefix", snapshot_suffix: "different snapshot_suffix", language: "different language", filename: "different filename", }, ]; } export function aPostSuggestionsBody(): NewPostSuggestions { return { data: [ { prefix: "some original_prefix", suffix: "some original_suffix", snapshot_prefix: "some snapshot_prefix", snapshot_suffix: "some snapshot_suffix", }, { prefix: "different original_prefix", suffix: "different original_suffix", snapshot_prefix: "different snapshot_prefix", snapshot_suffix: "different snapshot_suffix", }, ], metadata: [ { id: 123, time: A_DATE.toISOString(), language: "some language", filename: "some filename", offset: 180, line: 5, character: 30, git_index_sha1: "some git index sha1", git_branch: "some git branch", git_repo: "some git repo", }, { id: 124, time: ANOTHER_DATE.toISOString(), language: "different language", filename: "different filename", offset: 928, line: 72, character: 14, git_index_sha1: "some git index sha1", git_branch: "some git branch", git_repo: "some git repo", }, ], }; } export function aSuggestion(user: string): SuggestionItem { return { id: A_SUGGESTION_ID, user, time: SOME_DATE, original_prefix: "an original_prefix", original_suffix: "an original_suffix", snapshot_prefix: "a snapshot_prefix", snapshot_suffix: "a snapshot_suffix", language: "a language", filename: "a filename", }; } function aSuggestionMetadataEntity(userId?: string): SuggestionsMetadata { const suggestion = new SuggestionsMetadata(); suggestion.user = userId || A_USER_ID; suggestion.suggestionId = A_SUGGESTION_ID; suggestion.time = SOME_DATE; suggestion.language = "a language"; suggestion.filename = "a filename"; suggestion.offset = 5; suggestion.line = 12; suggestion.character = 7; suggestion.git_index_sha1 = "a git_index_sha1"; suggestion.git_branch = "a git_branch"; suggestion.git_repo = "a git_repo"; return suggestion; } function aSuggestionDataEntity(id: number): SuggestionsData { const suggestion = new SuggestionsData(); suggestion.id = id; suggestion.original_prefix = "an original_prefix"; suggestion.original_suffix = "an original_suffix"; suggestion.snapshot_prefix = "a snapshot_prefix"; suggestion.snapshot_suffix = "a snapshot_suffix"; return suggestion; } export async function persistASuggestion(userId?: string): Promise { const aSuggestionMetadata = await getSuggestionsMetadataRepository().save( aSuggestionMetadataEntity(userId) ); await getSuggestionsDataRepository().save( aSuggestionDataEntity(aSuggestionMetadata.id as number) ); } export async function persistANewerSuggestion(userId?: string): Promise { const suggestion = aSuggestionMetadataEntity(userId); suggestion.suggestionId = SOME_NEWER_SUGGESTION_ID; suggestion.time = SOME_NEWER_DATE; const aSuggestionMetadata = await getSuggestionsMetadataRepository().save( suggestion ); await getSuggestionsDataRepository().save( aSuggestionDataEntity(aSuggestionMetadata.id as number) ); }