From 9965b58e81ca20ccd4662fdd481ae012c2e2c68d Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Thu, 4 Apr 2024 12:38:36 -0700 Subject: [PATCH] Added some tests and docs --- lib/pinchflat/settings/setting.ex | 4 ++ .../boot/pre_job_startup_tasks_test.exs | 37 +++++++++++++++---- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/lib/pinchflat/settings/setting.ex b/lib/pinchflat/settings/setting.ex index da1b098..5fb7cf6 100644 --- a/lib/pinchflat/settings/setting.ex +++ b/lib/pinchflat/settings/setting.ex @@ -1,4 +1,8 @@ defmodule Pinchflat.Settings.Setting do + @moduledoc """ + The Setting schema. + """ + use Ecto.Schema import Ecto.Changeset diff --git a/test/pinchflat/boot/pre_job_startup_tasks_test.exs b/test/pinchflat/boot/pre_job_startup_tasks_test.exs index 7dd8ec2..f2cdd66 100644 --- a/test/pinchflat/boot/pre_job_startup_tasks_test.exs +++ b/test/pinchflat/boot/pre_job_startup_tasks_test.exs @@ -1,20 +1,43 @@ defmodule Pinchflat.Boot.PreJobStartupTasksTest do use Pinchflat.DataCase + import Pinchflat.JobFixtures + alias Pinchflat.Settings alias Pinchflat.Boot.PreJobStartupTasks - # TODO: write tests for things like cookie file creation + describe "reset_executing_jobs" do + test "resets executing jobs" do + job = job_fixture() + Repo.update_all(Oban.Job, set: [state: "executing"]) + + assert Repo.reload!(job).state == "executing" + + PreJobStartupTasks.start_link() + + assert Repo.reload!(job).state == "retryable" + end + end + + describe "create_blank_cookie_file" do + test "creates a blank cookie file" do + base_dir = Application.get_env(:pinchflat, :extras_directory) + filepath = Path.join(base_dir, "cookies.txt") + File.rm(filepath) + + refute File.exists?(filepath) + + PreJobStartupTasks.start_link() + + assert File.exists?(filepath) + end + end describe "apply_default_settings" do - setup do + test "sets default settings" do Settings.set(yt_dlp_version: nil) - :ok - end - - test "sets default settings" do - assert Settings.get!(:yt_dlp_version) == nil + refute Settings.get!(:yt_dlp_version) PreJobStartupTasks.start_link()