From 9152e2c35ea4de950c48d51f34c102336653016e Mon Sep 17 00:00:00 2001 From: sharkykh Date: Thu, 23 Aug 2018 00:24:22 +0300 Subject: [PATCH] Add render test for config-post-processing Stub all the components used --- .../slim/test/__fixtures__/common.json | 241 +++++++++++++++++- .../test/specs/config-post-processing.spec.js | 34 +++ .../config-post-processing.spec.js.md | 11 + .../config-post-processing.spec.js.snap | Bin 0 -> 4830 bytes 4 files changed, 285 insertions(+), 1 deletion(-) create mode 100644 themes-default/slim/test/specs/config-post-processing.spec.js create mode 100644 themes-default/slim/test/specs/snapshots/config-post-processing.spec.js.md create mode 100644 themes-default/slim/test/specs/snapshots/config-post-processing.spec.js.snap diff --git a/themes-default/slim/test/__fixtures__/common.json b/themes-default/slim/test/__fixtures__/common.json index 6cc255c8c31..b54c995b25c 100644 --- a/themes-default/slim/test/__fixtures__/common.json +++ b/themes-default/slim/test/__fixtures__/common.json @@ -17,8 +17,61 @@ "sourceUrl": "https://github.com/pymedusa/Medusa", "pid": 1234, "postProcessing": { + "postponeIfSyncFiles": true, + "showDownloadDir": "C:\\Downloads\\TV", + "reflinkAvailable": false, + "addShowsWithoutDir": false, + "naming": { + "enableCustomNamingSports": false, + "multiEp": 16, + "pattern": "Season %S/%S.N.S%0SE%0E.%RT.%SQ.N-%RG", + "patternAnime": "%SN - S%0SE%0E - [%QN] [%RG]", + "animeNamingType": 3, + "stripYear": false, + "patternAirByDate": "%SN - %A.D - %EN", + "enableCustomNamingAirByDate": false, + "enableCustomNamingAnime": false, + "patternSports": "%SN - %A-D - %EN", + "animeMultiEp": 1 + }, + "renameEpisodes": true, + "moveAssociatedFiles": false, + "extraScriptsUrl": "https://github.com/pymedusa/Medusa/wiki/Post-Processing#extra-scripts", + "deleteRarContent": false, + "extraScripts": [], + "noDelete": false, + "allowedExtensions": [ + "nfo", + "srt", + "sub", + "idx" + ], "processMethod": "copy", - "postponeIfNoSubs": true + "processAutomatically": true, + "autoPostprocessorFrequency": 30, + "fileTimestampTimezone": "local", + "syncFiles": [ + "!ut", + "!sync", + "lftp-pget-status", + "part", + "bts", + "!qb", + "!qB" + ], + "unpack": false, + "postponeIfNoSubs": true, + "createMissingShowDirs": true, + "nfoRename": true, + "multiEpStrings": { + "32": "Extend (Limited, E-prefixed)", + "1": "Repeat", + "2": "Extend", + "4": "Duplicate", + "8": "Extend (Limited)", + "16": "Repeat (Separated)" + }, + "airdateEpisodes": false }, "news": { "unread": 1, @@ -138,6 +191,192 @@ } } } + }, + "metadata": { + "metadataProviders": { + "kodi_12plus": { + "seasonAllBanner": true, + "name": "KODI 12+", + "showMetadata": true, + "poster": true, + "episodeMetadata": true, + "example": { + "seasonBanners": "season##-banner.jpg", + "fanart": "fanart.jpg", + "seasonAllBanner": "season-all-banner.jpg", + "episodeMetadata": "Season##\\filename.nfo", + "showMetadata": "tvshow.nfo", + "seasonAllPoster": "season-all-poster.jpg", + "poster": "poster.jpg", + "episodeThumbnails": "Season##\\filename-thumb.jpg", + "seasonPosters": "season##-poster.jpg", + "banner": "banner.jpg" + }, + "fanart": true, + "seasonAllPoster": true, + "seasonBanners": true, + "episodeThumbnails": true, + "seasonPosters": true, + "banner": true, + "id": "kodi_12plus" + }, + "kodi": { + "seasonAllBanner": false, + "name": "KODI", + "showMetadata": false, + "poster": false, + "episodeMetadata": false, + "example": { + "seasonBanners": "season##-banner.jpg", + "fanart": "fanart.jpg", + "seasonAllBanner": "season-all-banner.jpg", + "episodeMetadata": "Season##\\filename.nfo", + "showMetadata": "tvshow.nfo", + "seasonAllPoster": "season-all.tbn", + "poster": "folder.jpg", + "episodeThumbnails": "Season##\\filename.tbn", + "seasonPosters": "season##.tbn", + "banner": "folder.jpg" + }, + "fanart": false, + "seasonAllPoster": false, + "seasonBanners": false, + "episodeThumbnails": false, + "seasonPosters": false, + "banner": false, + "id": "kodi" + }, + "mediabrowser": { + "seasonAllBanner": false, + "name": "MediaBrowser", + "showMetadata": false, + "poster": false, + "episodeMetadata": false, + "example": { + "seasonBanners": "Season##\\banner.jpg", + "fanart": "backdrop.jpg", + "seasonAllBanner": "not supported", + "episodeMetadata": "Season##\\metadata\\filename.xml", + "showMetadata": "series.xml", + "seasonAllPoster": "not supported", + "poster": "folder.jpg", + "episodeThumbnails": "Season##\\metadata\\filename.jpg", + "seasonPosters": "Season##\\folder.jpg", + "banner": "banner.jpg" + }, + "fanart": false, + "seasonAllPoster": false, + "seasonBanners": false, + "episodeThumbnails": false, + "seasonPosters": false, + "banner": false, + "id": "mediabrowser" + }, + "wdtv": { + "seasonAllBanner": false, + "name": "WDTV", + "showMetadata": false, + "poster": false, + "episodeMetadata": false, + "example": { + "seasonBanners": "not supported", + "fanart": "not supported", + "seasonAllBanner": "not supported", + "episodeMetadata": "Season##\\filename.xml", + "showMetadata": "not supported", + "seasonAllPoster": "not supported", + "poster": "folder.jpg", + "episodeThumbnails": "Season##\\filename.metathumb", + "seasonPosters": "Season##\\folder.jpg", + "banner": "not supported" + }, + "fanart": false, + "seasonAllPoster": false, + "seasonBanners": false, + "episodeThumbnails": false, + "seasonPosters": false, + "banner": false, + "id": "wdtv" + }, + "tivo": { + "seasonAllBanner": false, + "name": "TIVO", + "showMetadata": false, + "poster": false, + "episodeMetadata": false, + "example": { + "seasonBanners": "not supported", + "fanart": "not supported", + "seasonAllBanner": "not supported", + "episodeMetadata": "Season##\\.meta\\filename.ext.txt", + "showMetadata": "not supported", + "seasonAllPoster": "not supported", + "poster": "not supported", + "episodeThumbnails": "not supported", + "seasonPosters": "not supported", + "banner": "not supported" + }, + "fanart": false, + "seasonAllPoster": false, + "seasonBanners": false, + "episodeThumbnails": false, + "seasonPosters": false, + "banner": false, + "id": "tivo" + }, + "mede8er": { + "seasonAllBanner": false, + "name": "Mede8er", + "showMetadata": false, + "poster": false, + "episodeMetadata": false, + "example": { + "seasonBanners": "Season##\\banner.jpg", + "fanart": "fanart.jpg", + "seasonAllBanner": "not supported", + "episodeMetadata": "Season##\\filename.xml", + "showMetadata": "series.xml", + "seasonAllPoster": "not supported", + "poster": "folder.jpg", + "episodeThumbnails": "Season##\\filename.jpg", + "seasonPosters": "Season##\\folder.jpg", + "banner": "banner.jpg" + }, + "fanart": false, + "seasonAllPoster": false, + "seasonBanners": false, + "episodeThumbnails": false, + "seasonPosters": false, + "banner": false, + "id": "mede8er" + }, + "sony_ps3": { + "seasonAllBanner": false, + "name": "Sony PS3", + "showMetadata": false, + "poster": false, + "episodeMetadata": false, + "example": { + "seasonBanners": "not supported", + "fanart": "not supported", + "seasonAllBanner": "not supported", + "episodeMetadata": "not supported", + "showMetadata": "not supported", + "seasonAllPoster": "not supported", + "poster": "cover.jpg", + "episodeThumbnails": "Season##\\filename.ext.cover.jpg", + "seasonPosters": "not supported", + "banner": "not supported" + }, + "fanart": false, + "seasonAllPoster": false, + "seasonBanners": false, + "episodeThumbnails": false, + "seasonPosters": false, + "banner": false, + "id": "sony_ps3" + } + } } } } diff --git a/themes-default/slim/test/specs/config-post-processing.spec.js b/themes-default/slim/test/specs/config-post-processing.spec.js new file mode 100644 index 00000000000..e0fe110d7b7 --- /dev/null +++ b/themes-default/slim/test/specs/config-post-processing.spec.js @@ -0,0 +1,34 @@ +import test from 'ava'; +import Vuex from 'vuex'; +import VueRouter from 'vue-router'; +import { createLocalVue, mount } from '@vue/test-utils'; +import { ConfigPostProcessing } from '../../src/components'; +import fixtures from '../__fixtures__/common'; + +test.beforeEach(t => { + t.context.localVue = createLocalVue(); + t.context.localVue.use(Vuex); + t.context.localVue.use(VueRouter); + + const { state } = fixtures; + const { Store } = Vuex; + t.context.state = state; + t.context.store = new Store({ state }); +}); + +test('renders', t => { + const { localVue, store } = t.context; + const wrapper = mount(ConfigPostProcessing, { + localVue, + store, + stubs: [ + 'app-link', + 'file-browser', + 'name-pattern', + 'select-list', + 'toggle-button' + ] + }); + + t.snapshot(wrapper.html()); +}); diff --git a/themes-default/slim/test/specs/snapshots/config-post-processing.spec.js.md b/themes-default/slim/test/specs/snapshots/config-post-processing.spec.js.md new file mode 100644 index 00000000000..f2c93d16c5e --- /dev/null +++ b/themes-default/slim/test/specs/snapshots/config-post-processing.spec.js.md @@ -0,0 +1,11 @@ +# Snapshot report for `test/specs/config-post-processing.spec.js` + +The actual snapshot is saved in `config-post-processing.spec.js.snap`. + +Generated by [AVA](https://ava.li). + +## renders + +> Snapshot 1 + + '
  • Post Processing
  • Episode Naming
  • Metadata

Scheduled Post-Processing

Settings that dictate how Medusa should process completed downloads.

The scheduled postprocessor will periodically scan a folder for media to process.

Enable the scheduled post processor to scan and process any files in your Post Processing Dir?

NOTE: Do not use if you use an external Post Processing script

The folder where your download client puts the completed TV downloads.

NOTE: Please use seperate downloading and completed folders in your download client if possible.

What method should be used to put files into the library?

NOTE: If you keep seeding torrents after they finish, please avoid the \'move\' processing method to prevent errors.

Time in minutes to check for new files to auto post-process (min 10)

General Post-Processing

Generic postprocessing settings that apply both to the scheduled postprocessor as external scripts

Wait to process a folder if sync files are present.
comma seperated list of extensions or filename globs Medusa ignores when Post Processing
Wait to process a file until subtitles are presentLanguage names are allowed in subtitle filename (en.srt, pt-br.srt, ita.srt, etc.) NOTE: Automatic post processor should be disabled to avoid files with pending subtitles being processed over and over.If you have any active show with subtitle search disabled, you must enable Automatic post processor.
Rename episode using the Episode Naming settings?
Create missing show directories when they get deleted
Add shows without creating a directory (not recommended)
Delete srt/srr/sfv/etc files while post processing?
Comma seperated list of associated file extensions Medusa should keep while post processing. Leaving it empty means all associated files will be deleted
Rename the original .nfo file to .nfo-orig to avoid conflicts?
Set last modified filedate to the date that the episode aired?
What timezone should be used to change File Date?
NOTE: Only working with RAR archive
Delete content of RAR files, even if Process Method not set to move?
NOTE: Can be overridden using manual Post ProcessingLeave empty folders when Post Processing?
See Wiki for script arguments description and usage.

Episode Naming

How Medusa will name and sort your episodes.

Remove the TV show\'s year when renaming the file?

Only applies to shows that have year inside parentheses

Metadata

The data associated to the data. These are files associated to a TV show in the form of images and text that, when supported, will enhance the viewing experience.

Toggle the metadata options that you wish to be created. Multiple targets may be used.

All non-absolute folder locations are relative to
' diff --git a/themes-default/slim/test/specs/snapshots/config-post-processing.spec.js.snap b/themes-default/slim/test/specs/snapshots/config-post-processing.spec.js.snap new file mode 100644 index 0000000000000000000000000000000000000000..1e1ebfbb59ae0925ed69076fb4c8b8f8c4079839 GIT binary patch literal 4830 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 E0M=Ps4*&oF literal 0 HcmV?d00001