diff options
| author | Samantaz Fox <coding@samantaz.fr> | 2022-03-03 23:29:13 +0100 |
|---|---|---|
| committer | Samantaz Fox <coding@samantaz.fr> | 2022-03-29 20:31:23 +0200 |
| commit | 75c9dbaf6bec907f73c606be2a1710c9d3a68fc3 (patch) | |
| tree | 49fb6f874e524c34bb24d74b47defc1db53267a8 /spec | |
| parent | c01a29fe76c78d403e80d1e9000046c45ac97a72 (diff) | |
| download | invidious-75c9dbaf6bec907f73c606be2a1710c9d3a68fc3.tar.gz invidious-75c9dbaf6bec907f73c606be2a1710c9d3a68fc3.tar.bz2 invidious-75c9dbaf6bec907f73c606be2a1710c9d3a68fc3.zip | |
Add a function to parse youtube search parameters
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/invidious/search/yt_filters_spec.cr | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/spec/invidious/search/yt_filters_spec.cr b/spec/invidious/search/yt_filters_spec.cr index 27357058..bf7f21e7 100644 --- a/spec/invidious/search/yt_filters_spec.cr +++ b/spec/invidious/search/yt_filters_spec.cr @@ -89,4 +89,55 @@ Spectator.describe Invidious::Search::Filters do end end end + + # ------------------- + # Decode YT params + # ------------------- + + describe "#from_yt_params" do + sample DATE_FILTERS do |value, encoded| + it "Decodes upload date filter '#{value}'" do + params = HTTP::Params.parse("sp=#{encoded}") + + expect(described_class.from_yt_params(params)) + .to eq(described_class.new(date: value)) + end + end + + sample TYPE_FILTERS do |value, encoded| + it "Decodes content type filter '#{value}'" do + params = HTTP::Params.parse("sp=#{encoded}") + + expect(described_class.from_yt_params(params)) + .to eq(described_class.new(type: value)) + end + end + + sample DURATION_FILTERS do |value, encoded| + it "Decodes duration filter '#{value}'" do + params = HTTP::Params.parse("sp=#{encoded}") + + expect(described_class.from_yt_params(params)) + .to eq(described_class.new(duration: value)) + end + end + + sample FEATURE_FILTERS do |value, encoded| + it "Decodes feature filter '#{value}'" do + params = HTTP::Params.parse("sp=#{encoded}") + + expect(described_class.from_yt_params(params)) + .to eq(described_class.new(features: value)) + end + end + + sample SORT_FILTERS do |value, encoded| + it "Decodes sort filter '#{value}'" do + params = HTTP::Params.parse("sp=#{encoded}") + + expect(described_class.from_yt_params(params)) + .to eq(described_class.new(sort: value)) + end + end + end end |
