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  }