golift.io/starr@v1.0.0/starrcmd/readarr_test.go (about) 1 //nolint:paralleltest,dupl 2 package starrcmd_test 3 4 import ( 5 "os" 6 "testing" 7 8 "golift.io/starr/starrcmd" 9 ) 10 11 func TestReadarrApplicationUpdate(t *testing.T) { 12 t.Setenv("readarr_eventtype", string(starrcmd.EventApplicationUpdate)) 13 t.Setenv("readarr_update_previousversion", "6.0.3.5875") 14 t.Setenv("readarr_update_newversion", "6.0.4.5909") 15 t.Setenv("readarr_update_message", "Readarr updated from 6.0.3.5875 to 6.0.4.5909") 16 17 cmd, err := starrcmd.New() 18 if err != nil { 19 t.Fatalf("got an unexpected error: %s", err) 20 } 21 22 switch info, err := cmd.GetReadarrApplicationUpdate(); { 23 case err != nil: 24 t.Fatalf("got an unexpected error: %s", err) 25 case info.Message != os.Getenv("readarr_update_message"): 26 t.Fatalf("got wrong Message? %s", info.Message) 27 case info.NewVersion != "6.0.4.5909": 28 t.Fatalf("got wrong new version? wanted: '6.0.4.5909' got: %s", info.Message) 29 case info.PreviousVersion != "6.0.3.5875": 30 t.Fatalf("got wrong Message? wanted: '6.0.3.5875' got: %s", info.Message) 31 } 32 } 33 34 func TestReadarrHealthIssue(t *testing.T) { 35 t.Setenv("readarr_eventtype", string(starrcmd.EventHealthIssue)) 36 t.Setenv("readarr_health_issue_type", "SomeIssueTypeForReadarr") 37 t.Setenv("readarr_health_issue_wiki", "https://wiki.servarr.com/readarr") 38 t.Setenv("readarr_health_issue_level", "Info") 39 t.Setenv("readarr_health_issue_message", "Lists unavailable due to failures: List name here") 40 41 cmd, err := starrcmd.New() 42 if err != nil { 43 t.Fatalf("got an unexpected error: %s", err) 44 } 45 46 switch info, err := cmd.GetReadarrHealthIssue(); { 47 case err != nil: 48 t.Fatalf("got an unexpected error: %s", err) 49 case info.Message != os.Getenv("readarr_health_issue_message"): 50 t.Fatalf("got wrong Message? %s", info.Message) 51 case info.Wiki != "https://wiki.servarr.com/readarr": 52 t.Fatalf("got wrong wiki link? wanted: 'https://wiki.servarr.com/readarr' got: %s", info.Wiki) 53 case info.Level != "Info": 54 t.Fatalf("got wrong level? wanted: 'Info' got: %s", info.Level) 55 case info.IssueType != "SomeIssueTypeForReadarr": 56 t.Fatalf("got wrong issue type? wanted: 'ImportListStatusCheck' got: %s", info.IssueType) 57 } 58 } 59 60 func TestReadarrTest(t *testing.T) { 61 t.Setenv("readarr_eventtype", string(starrcmd.EventTest)) 62 63 cmd, err := starrcmd.New() 64 if err != nil { 65 t.Fatalf("got an unexpected error: %s", err) 66 } 67 68 switch info, err := cmd.GetReadarrTest(); { 69 case err != nil: 70 t.Fatalf("got an unexpected error: %s", err) 71 case info != starrcmd.ReadarrTest{}: 72 t.Fatalf("got an wrong structure in return") 73 } 74 } 75 76 func TestReadarrGrab(t *testing.T) { 77 t.Setenv("readarr_eventtype", string(starrcmd.EventGrab)) 78 t.Setenv("readarr_author_grid", "1077326") 79 t.Setenv("readarr_release_releasegroup", "BitBook") 80 t.Setenv("readarr_author_name", "J.K. Rowling") 81 t.Setenv("readarr_release_title", "J K Rowling - Harry Potter and the Order of the Phoenix") 82 t.Setenv("readarr_release_grids", "21175582 // not sure what this looks like with 2+") 83 t.Setenv("readarr_download_client", "qBittorrent") 84 t.Setenv("readarr_release_size", "1279262") 85 t.Setenv("readarr_release_qualityversion", "1") 86 t.Setenv("readarr_release_booktitles", "Harry Potter and the Order of the Phoenix") 87 t.Setenv("readarr_release_bookids", "649") 88 t.Setenv("readarr_release_indexer", "InfoWars (Prowlarr)") 89 t.Setenv("readarr_download_id", "3852BA2204A84185B2B43281E53BE93D56DE5C81") 90 t.Setenv("readarr_release_bookcount", "1") 91 t.Setenv("readarr_release_bookreleasedates", "07/10/2003 07:00:00") 92 t.Setenv("readarr_release_quality", "EPUB") 93 t.Setenv("readarr_author_id", "4") 94 95 cmd, err := starrcmd.New() 96 if err != nil { 97 t.Fatalf("got an unexpected error: %s", err) 98 } 99 100 switch info, err := cmd.GetReadarrGrab(); { 101 case err != nil: 102 t.Fatalf("got an unexpected error: %s", err) 103 case info.AuthorName != "J.K. Rowling": 104 t.Fatalf("got an wrong author name? wanted: 'J.K. Rowling', got: %v", info.AuthorName) 105 } 106 } 107 108 func TestReadarrBookDelete(t *testing.T) { 109 t.Setenv("readarr_eventtype", string(starrcmd.EventBookDelete)) 110 t.Setenv("readarr_author_name", "Alyssa Cole") 111 t.Setenv("readarr_book_goodreadsid", "88514853") 112 t.Setenv("readarr_author_goodreadsid", "7790155") 113 t.Setenv("readarr_book_title", "Unti Cole #6: A Novel") 114 t.Setenv("readarr_author_path", "/books/Alyssa Cole") 115 t.Setenv("readarr_book_id", "636") 116 t.Setenv("readarr_book_deletedfiles", "True") 117 t.Setenv("readarr_author_id", "33") 118 119 cmd, err := starrcmd.New() 120 if err != nil { 121 t.Fatalf("got an unexpected error: %s", err) 122 } 123 124 switch info, err := cmd.GetReadarrBookDelete(); { 125 case err != nil: 126 t.Fatalf("got an unexpected error: %s", err) 127 case info.AuthorName != "Alyssa Cole": 128 t.Fatalf("got an wrong author name? wanted: 'Alyssa Cole', got: %v", info.AuthorName) 129 } 130 } 131 132 func TestReadarrBookFileDelete(t *testing.T) { 133 t.Setenv("readarr_eventtype", string(starrcmd.EventBookFileDelete)) 134 t.Setenv("readarr_delete_reason", "deleteMessage.Reason.ToString())") 135 t.Setenv("readarr_author_id", "54756546") 136 t.Setenv("readarr_author_name", "author.Name)") 137 t.Setenv("readarr_author_goodreadsid", "34234234") 138 t.Setenv("readarr_book_id", "456454345") 139 t.Setenv("readarr_book_title", "book.Title)") 140 t.Setenv("readarr_book_goodreadsid", "324324234") 141 t.Setenv("readarr_bookfile_id", "7323445") 142 t.Setenv("readarr_bookfile_path", "bookFile.Path)") 143 t.Setenv("readarr_bookfile_quality", "bookFile.Quality.Quality.Name)") 144 t.Setenv("readarr_bookfile_qualityversion", "1") 145 t.Setenv("readarr_bookfile_releasegroup", "bookFile.ReleaseGroup ?? string.Empty)") 146 t.Setenv("readarr_bookfile_scenename", "bookFile.SceneName ?? string.Empty)") 147 t.Setenv("readarr_bookfile_edition_id", "213123") 148 t.Setenv("readarr_bookfile_edition_name", "edition.Title)") 149 t.Setenv("readarr_bookfile_edition_goodreadsid", "324234") 150 t.Setenv("readarr_bookfile_edition_isbn13", "edition.Isbn13)") 151 t.Setenv("readarr_bookfile_edition_asin", "edition.Asin)") 152 153 cmd, err := starrcmd.New() 154 if err != nil { 155 t.Fatalf("got an unexpected error: %s", err) 156 } 157 158 switch info, err := cmd.GetReadarrBookFileDelete(); { 159 case err != nil: 160 t.Fatalf("got an unexpected error: %s", err) 161 case info.AuthorName != "author.Name)": 162 t.Fatalf("got an wrong author name? wanted: 'author.Name)', got: %v", info.AuthorName) 163 } 164 } 165 166 func TestReadarrAuthorDelete(t *testing.T) { 167 t.Setenv("readarr_eventtype", string(starrcmd.EventAuthorDelete)) 168 t.Setenv("readarr_author_id", "34534534") 169 t.Setenv("readarr_author_name", "author.Name)") 170 t.Setenv("readarr_author_path", "author.Path)") 171 t.Setenv("readarr_author_goodreadsid", "234234234") 172 t.Setenv("readarr_author_deletedfiles", "False") 173 174 cmd, err := starrcmd.New() 175 if err != nil { 176 t.Fatalf("got an unexpected error: %s", err) 177 } 178 179 switch info, err := cmd.GetReadarrAuthorDelete(); { 180 case err != nil: 181 t.Fatalf("got an unexpected error: %s", err) 182 case info.AuthorName != "author.Name)": 183 t.Fatalf("got an wrong author name? wanted: 'author.Name)', got: %v", info.AuthorName) 184 } 185 } 186 187 func TestReadarrRename(t *testing.T) { 188 t.Setenv("readarr_eventtype", string(starrcmd.EventRename)) 189 t.Setenv("readarr_author_id", "16128787") 190 t.Setenv("readarr_author_name", "author.Metadata.Value.Name)") 191 t.Setenv("readarr_author_path", "author.Path)") 192 t.Setenv("readarr_author_grid", "234234234") 193 194 cmd, err := starrcmd.New() 195 if err != nil { 196 t.Fatalf("got an unexpected error: %s", err) 197 } 198 199 switch info, err := cmd.GetReadarrRename(); { 200 case err != nil: 201 t.Fatalf("got an unexpected error: %s", err) 202 case info.AuthorName != "author.Metadata.Value.Name)": 203 t.Fatalf("got an wrong author name? wanted: 'author.Metadata.Value.Name)', got: %v", info.AuthorName) 204 } 205 } 206 207 func TestReadarrDownload(t *testing.T) { 208 t.Setenv("readarr_eventtype", string(starrcmd.EventDownload)) 209 t.Setenv("readarr_author_id", "9182398") 210 t.Setenv("readarr_author_name", "le author") 211 t.Setenv("readarr_author_path", "author.Path)") 212 t.Setenv("readarr_author_grid", "2234234") 213 t.Setenv("readarr_book_id", "012338") 214 t.Setenv("readarr_book_title", "book.Title)") 215 t.Setenv("readarr_book_grid", "123123123") 216 t.Setenv("readarr_book_releasedate", "09/01/2003 07:00:00") 217 t.Setenv("readarr_download_client", "message.DownloadClient ?? string.Empty)") 218 t.Setenv("readarr_download_id", "message.DownloadId ?? string.Empty)") 219 t.Setenv("readarr_addedbookpaths", "") 220 t.Setenv("readarr_deletedpaths", "") 221 222 cmd, err := starrcmd.New() 223 if err != nil { 224 t.Fatalf("got an unexpected error: %s", err) 225 } 226 227 switch info, err := cmd.GetReadarrDownload(); { 228 case err != nil: 229 t.Fatalf("got an unexpected error: %s", err) 230 case info.AuthorName != "le author": 231 t.Fatalf("got an wrong author name? wanted: 'le author', got: %v", info.AuthorName) 232 } 233 } 234 235 func TestReadarrTrackRetag(t *testing.T) { 236 t.Setenv("readarr_eventtype", string(starrcmd.EventTrackRetag)) 237 t.Setenv("readarr_author_id", "1232131313") 238 t.Setenv("readarr_author_name", "write here") 239 t.Setenv("readarr_author_path", "author.Path)") 240 t.Setenv("readarr_author_grid", "324324") 241 t.Setenv("readarr_book_id", "676757") 242 t.Setenv("readarr_book_title", "book.Title)") 243 t.Setenv("readarr_book_grid", "123123123") 244 t.Setenv("readarr_book_releasedate", "11/11/2003 17:00:00") 245 t.Setenv("readarr_bookfile_id", "4565665") 246 t.Setenv("readarr_bookfile_path", "bookFile.Path)") 247 t.Setenv("readarr_bookfile_quality", "bookFile.Quality.Quality.Name)") 248 t.Setenv("readarr_bookfile_qualityversion", "1") 249 t.Setenv("readarr_bookfile_releasegroup", "bookFile.ReleaseGroup ?? string.Empty)") 250 t.Setenv("readarr_bookfile_scenename", "bookFile.SceneName ?? string.Empty)") 251 t.Setenv("readarr_tags_diff", "message.Diff.ToJson())") 252 t.Setenv("readarr_tags_scrubbed", "False") 253 254 cmd, err := starrcmd.New() 255 if err != nil { 256 t.Fatalf("got an unexpected error: %s", err) 257 } 258 259 switch info, err := cmd.GetReadarrTrackRetag(); { 260 case err != nil: 261 t.Fatalf("got an unexpected error: %s", err) 262 case info.AuthorName != "write here": 263 t.Fatalf("got an wrong author name? wanted: 'write here', got: %v", info.AuthorName) 264 } 265 }