golift.io/starr@v1.0.0/starrcmd/lidarr_test.go (about) 1 //nolint:paralleltest 2 package starrcmd_test 3 4 import ( 5 "os" 6 "testing" 7 8 "golift.io/starr/starrcmd" 9 ) 10 11 func TestLidarrApplicationUpdate(t *testing.T) { 12 t.Setenv("lidarr_eventtype", string(starrcmd.EventApplicationUpdate)) 13 t.Setenv("lidarr_update_previousversion", "5.0.3.5875") 14 t.Setenv("lidarr_update_newversion", "5.0.4.5909") 15 t.Setenv("lidarr_update_message", "Lidarr updated from 5.0.3.5875 to 5.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.GetLidarrApplicationUpdate(); { 23 case err != nil: 24 t.Fatalf("got an unexpected error: %s", err) 25 case info.Message != os.Getenv("lidarr_update_message"): 26 t.Fatalf("got wrong Message? %s", info.Message) 27 case info.NewVersion != "5.0.4.5909": 28 t.Fatalf("got wrong new version? wanted: '5.0.4.5909' got: %s", info.Message) 29 case info.PreviousVersion != "5.0.3.5875": 30 t.Fatalf("got wrong Message? wanted: '5.0.3.5875' got: %s", info.Message) 31 } 32 } 33 34 func TestLidarrHealthIssue(t *testing.T) { 35 t.Setenv("lidarr_eventtype", string(starrcmd.EventHealthIssue)) 36 t.Setenv("lidarr_health_issue_type", "SomeIssueTypeForLidarr") 37 t.Setenv("lidarr_health_issue_wiki", "https://wiki.servarr.com/lidarr") 38 t.Setenv("lidarr_health_issue_level", "Womp") 39 t.Setenv("lidarr_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.GetLidarrHealthIssue(); { 47 case err != nil: 48 t.Fatalf("got an unexpected error: %s", err) 49 case info.Message != os.Getenv("lidarr_health_issue_message"): 50 t.Fatalf("got wrong Message? %s", info.Message) 51 case info.Wiki != "https://wiki.servarr.com/lidarr": 52 t.Fatalf("got wrong wiki link? wanted: 'https://wiki.servarr.com/lidarr' got: %s", info.Wiki) 53 case info.Level != "Womp": 54 t.Fatalf("got wrong level? wanted: 'Womp' got: %s", info.Level) 55 case info.IssueType != "SomeIssueTypeForLidarr": 56 t.Fatalf("got wrong issue type? wanted: 'ImportListStatusCheck' got: %s", info.IssueType) 57 } 58 } 59 60 func TestLidarrHealthIssueEmpty(t *testing.T) { 61 t.Setenv("lidarr_eventtype", string(starrcmd.EventHealthIssue)) 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.GetLidarrHealthIssue(); { 69 case err != nil: 70 t.Fatalf("got an unexpected error: %s", err) 71 case info.IssueType != "": 72 t.Fatalf("got wrong issue type? wanted: '' got: %s", info.IssueType) 73 } 74 } 75 76 func TestLidarrTest(t *testing.T) { 77 t.Setenv("lidarr_eventtype", string(starrcmd.EventTest)) 78 79 cmd, err := starrcmd.New() 80 if err != nil { 81 t.Fatalf("got an unexpected error: %s", err) 82 } 83 84 switch info, err := cmd.GetLidarrTest(); { 85 case err != nil: 86 t.Fatalf("got an unexpected error: %s", err) 87 case info != starrcmd.LidarrTest{}: 88 t.Fatalf("got an wrong structure in return") 89 } 90 } 91 92 func TestLidarrGrab(t *testing.T) { 93 t.Setenv("lidarr_eventtype", string(starrcmd.EventGrab)) 94 t.Setenv("lidarr_download_client", "Deluge") 95 t.Setenv("lidarr_release_albumcount", "1") 96 t.Setenv("lidarr_release_size", "433061888") 97 t.Setenv("lidarr_release_albumreleasedates", "4/21/2010 12:00:00 AM") 98 t.Setenv("lidarr_artist_id", "262") 99 t.Setenv("lidarr_artist_name", "Tom Petty and the Heartbreakers") 100 t.Setenv("lidarr_artist_mbid", "f93dbc64-6f08-4033-bcc7-8a0bb4689849") 101 t.Setenv("lidarr_release_indexer", "Indexilate (Prowlarr)") 102 t.Setenv("lidarr_release_qualityversion", "1") 103 t.Setenv("lidarr_release_quality", "FLAC") 104 t.Setenv("lidarr_release_releasegroup", "Someone") 105 t.Setenv("lidarr_release_title", "Tom Petty & The Heartbreakers - Mojo (2010) [FLAC (tracks + cue)]") 106 t.Setenv("lidarr_release_albummbids", "75f6f410-73e6-485b-898d-6fdaea4c0266") 107 t.Setenv("lidarr_download_id", "4A87D9F5F92D82DF4076463E90CC49F27077CB10") 108 t.Setenv("lidarr_release_albumtitles", "Mojo") 109 t.Setenv("lidarr_artist_type", "Group") 110 111 cmd, err := starrcmd.New() 112 if err != nil { 113 t.Fatalf("got an unexpected error: %s", err) 114 } 115 116 switch info, err := cmd.GetLidarrGrab(); { 117 case err != nil: 118 t.Fatalf("got an unexpected error: %s", err) 119 case info.ArtistName != "Tom Petty and the Heartbreakers": 120 t.Fatalf("got wrong artists name? wanted: 'Tom Petty and the Heartbreakers' got: %s", info.ArtistName) 121 } 122 } 123 124 func TestLidarrAlbumDownload(t *testing.T) { 125 t.Setenv("lidarr_eventtype", string(starrcmd.EventAlbumDownload)) 126 t.Setenv("lidarr_artist_id", "12345") 127 t.Setenv("lidarr_artist_name", "some artist") 128 t.Setenv("lidarr_artist_path", "artist.Path)") 129 t.Setenv("lidarr_artist_mbid", "artist.Metadata.Value.ForeignArtistId)") 130 t.Setenv("lidarr_artist_type", "artist.Metadata.Value.Type)") 131 t.Setenv("lidarr_album_id", "5432") 132 t.Setenv("lidarr_album_title", "album.Title)") 133 t.Setenv("lidarr_album_mbid", "album.ForeignAlbumId)") 134 t.Setenv("lidarr_albumrelease_mbid", "release.ForeignReleaseId)") 135 t.Setenv("lidarr_album_releasedate", "7/21/2010 1:00:00 AM") 136 t.Setenv("lidarr_download_client", "message.DownloadClient ?? string.Empty)") 137 t.Setenv("lidarr_download_id", "message.DownloadId ?? string.Empty)") 138 t.Setenv("lidarr_addedtrackpaths", "") 139 t.Setenv("lidarr_deletedpaths", "") 140 141 cmd, err := starrcmd.New() 142 if err != nil { 143 t.Fatalf("got an unexpected error: %s", err) 144 } 145 146 switch info, err := cmd.GetLidarrAlbumDownload(); { 147 case err != nil: 148 t.Fatalf("got an unexpected error: %s", err) 149 case info.ArtistName != "some artist": 150 t.Fatalf("got wrong artists name? wanted: 'some artist' got: %s", info.ArtistName) 151 } 152 } 153 154 func TestLidarrRename(t *testing.T) { 155 t.Setenv("lidarr_eventtype", string(starrcmd.EventRename)) 156 t.Setenv("lidarr_artist_id", "34666") 157 t.Setenv("lidarr_artist_name", "arti goes here") 158 t.Setenv("lidarr_artist_path", "artist.Path)") 159 t.Setenv("lidarr_artist_mbid", "artist.Metadata.Value.ForeignArtistId)") 160 t.Setenv("lidarr_artist_type", "artist.Metadata.Value.Type)") 161 162 cmd, err := starrcmd.New() 163 if err != nil { 164 t.Fatalf("got an unexpected error: %s", err) 165 } 166 167 switch info, err := cmd.GetLidarrRename(); { 168 case err != nil: 169 t.Fatalf("got an unexpected error: %s", err) 170 case info.ArtistName != "arti goes here": 171 t.Fatalf("got wrong artists name? wanted: 'arti goes here' got: %s", info.ArtistName) 172 } 173 } 174 175 func TestLidarrTrackRetag(t *testing.T) { 176 t.Setenv("lidarr_eventtype", string(starrcmd.EventTrackRetag)) 177 t.Setenv("lidarr_artist_id", "3473234") 178 t.Setenv("lidarr_artist_name", "tushort") 179 t.Setenv("lidarr_artist_path", "artist.Path)") 180 t.Setenv("lidarr_artist_mbid", "artist.Metadata.Value.ForeignArtistId)") 181 t.Setenv("lidarr_artist_type", "artist.Metadata.Value.Type)") 182 t.Setenv("lidarr_album_id", "39739479324") 183 t.Setenv("lidarr_album_title", "album.Title)") 184 t.Setenv("lidarr_album_mbid", "album.ForeignAlbumId)") 185 t.Setenv("lidarr_albumrelease_mbid", "release.ForeignReleaseId)") 186 t.Setenv("lidarr_album_releasedate", "9/11/2001 1:00:00 AM") 187 t.Setenv("lidarr_trackfile_id", "324324") 188 t.Setenv("lidarr_trackfile_trackcount", "1") 189 t.Setenv("lidarr_trackfile_path", "trackFile.Path)") 190 t.Setenv("lidarr_trackfile_tracknumbers", "1,2,3,4") 191 t.Setenv("lidarr_trackfile_tracktitles", "title1|title2") 192 t.Setenv("lidarr_trackfile_quality", "trackFile.Quality.Quality.Name)") 193 t.Setenv("lidarr_trackfile_qualityversion", "1") 194 t.Setenv("lidarr_trackfile_releasegroup", "trackFile.ReleaseGroup ?? string.Empty)") 195 t.Setenv("lidarr_trackfile_scenename", "trackFile.SceneName ?? string.Empty)") 196 t.Setenv("lidarr_tags_diff", "message.Diff.ToJson())") 197 t.Setenv("lidarr_tags_scrubbed", "False") 198 199 cmd, err := starrcmd.New() 200 if err != nil { 201 t.Fatalf("got an unexpected error: %s", err) 202 } 203 204 switch info, err := cmd.GetLidarrTrackRetag(); { 205 case err != nil: 206 t.Fatalf("got an unexpected error: %s", err) 207 case info.ArtistName != "tushort": 208 t.Fatalf("got wrong artists name? wanted: 'tushort' got: %s", info.ArtistName) 209 } 210 }