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  }