spec/unit/set_spec.rb in ayadn-3.0 vs spec/unit/set_spec.rb in ayadn-4.0
- old
+ new
@@ -1,92 +1,119 @@
require 'spec_helper'
require 'helpers'
def init_stubs
- Ayadn::Settings.stub(:options).and_return({
- colors: {
- hashtags: :cyan,
- mentions: :red,
- username: :green,
- id: :blue,
- name: :yellow,
- source: :blue,
- symbols: :green,
- index: :blue,
- date: :cyan,
- link: :magenta,
- excerpt: :green
- },
- timeline: {
- directed: 1,
- html: 0,
- annotations: 1,
- source: true,
- symbols: true,
- name: true,
- date: true,
- spinner: true,
- debug: false
- },
- formats: {
- table: {width: 75},
- list: {reverse: true}
- },
- counts: {
- default: 50,
- unified: 100,
- global: 100,
- checkins: 100,
- conversations: 50,
- photos: 50,
- trending: 100,
- mentions: 100,
- convo: 100,
- posts: 100,
- messages: 50,
- search: 200,
- whoreposted: 50,
- whostarred: 50,
- whatstarred: 100,
- files: 100
- },
- scroll: {
- timer: 3
- },
- movie: {
- hashtag: 'nowwatching'
- },
- tvshow: {
- hashtag: 'nowwatching'
- },
- nicerank: {
- threshold: 2.1,
- filter: true,
- unranked: false
- },
- backup: {
- posts: false,
- messages: false,
- lists: false
- },
- marker: {
- messages: true
+ Ayadn::Settings.stub(:options).and_return(
+ Ayadn::Preferences.new(
+ {
+ timeline: {
+ directed: true,
+ source: true,
+ symbols: true,
+ name: true,
+ date: true,
+ debug: false,
+ compact: false
+ },
+ marker: {
+ messages: true
+ },
+ counts: {
+ default: 50,
+ unified: 50,
+ global: 50,
+ checkins: 50,
+ conversations: 50,
+ photos: 50,
+ trending: 50,
+ mentions: 50,
+ convo: 50,
+ posts: 50,
+ messages: 20,
+ search: 200,
+ whoreposted: 20,
+ whostarred: 20,
+ whatstarred: 100,
+ files: 50
+ },
+ formats: {
+ table: {
+ width: 75,
+ borders: true
+ },
+ list: {
+ reverse: true
+ }
+ },
+ channels: {
+ links: true
+ },
+ colors: {
+ id: :blue,
+ index: :red,
+ username: :green,
+ name: :magenta,
+ date: :cyan,
+ link: :yellow,
+ dots: :blue,
+ hashtags: :cyan,
+ mentions: :red,
+ source: :cyan,
+ symbols: :green,
+ unread: :cyan,
+ debug: :red,
+ excerpt: :green
+ },
+ backup: {
+ posts: false,
+ messages: false,
+ lists: false
+ },
+ scroll: {
+ spinner: true,
+ timer: 3,
+ date: false
+ },
+ nicerank: {
+ threshold: 2.1,
+ filter: true,
+ unranked: false
+ },
+ nowplaying: {},
+ blacklist: {
+ active: true
+ }
+ }))
+ require 'json'
+ require 'ostruct'
+ obj =
+ {
+ identity: {
+ username: 'test',
+ handle: '@test'
+ },
+ post_max_length: 256,
+ message_max_length: 2048,
+ version: 'wee',
+ paths: {
+ db: 'spec/mock/',
+ log: 'spec/mock'
+ },
+ platform: 'shoes',
+ ruby: '0',
+ locale: 'gibberish'
}
- })
- Ayadn::Settings.stub(:config).and_return({
- identity: {
- username: 'test',
- handle: '@test'
- },
- post_max_length: 256,
- message_max_length: 2048,
- version: 'wee',
- paths: {
- db: 'spec/mock/',
- log: 'spec/mock'
- }
- })
+ Ayadn::Settings.stub(:config).and_return(
+ JSON.parse(obj.to_json, object_class: OpenStruct)
+ )
+ global_hash = {
+ scrolling: false,
+ force: false
+ }
+ Ayadn::Settings.stub(:global).and_return(
+ JSON.parse(global_hash.to_json, object_class: OpenStruct)
+ )
Ayadn::Settings.stub(:user_token).and_return('XYZ')
Ayadn::Settings.stub(:load_config)
Ayadn::Settings.stub(:get_token)
Ayadn::Settings.stub(:init_config)
Dir.stub(:home).and_return('spec/mock/')
@@ -97,95 +124,73 @@
init_stubs
end
describe "#timer" do
it "creates a default value" do
- expect(Ayadn::Settings.options[:scroll][:timer]).to eq 3
+ expect(Ayadn::Settings.options.scroll.timer).to eq 3
Ayadn::SetScroll.new.timer('2')
- expect(Ayadn::Settings.options[:scroll][:timer]).to eq 2
+ expect(Ayadn::Settings.options.scroll.timer).to eq 2
Ayadn::SetScroll.new.timer('4.2')
- expect(Ayadn::Settings.options[:scroll][:timer]).to eq 4
+ expect(Ayadn::Settings.options.scroll.timer).to eq 4
Ayadn::SetScroll.new.timer('0')
- expect(Ayadn::Settings.options[:scroll][:timer]).to eq 3
+ expect(Ayadn::Settings.options.scroll.timer).to eq 3
Ayadn::SetScroll.new.timer('johnson')
- expect(Ayadn::Settings.options[:scroll][:timer]).to eq 3
+ expect(Ayadn::Settings.options.scroll.timer).to eq 3
end
end
describe "#spinner" do
it "creates a default value" do
Ayadn::SetScroll.new.spinner('true')
- expect(Ayadn::Settings.options[:scroll][:spinner]).to eq true
+ expect(Ayadn::Settings.options.scroll.spinner).to eq true
Ayadn::SetScroll.new.spinner('false')
- expect(Ayadn::Settings.options[:scroll][:spinner]).to eq false
+ expect(Ayadn::Settings.options.scroll.spinner).to eq false
Ayadn::SetScroll.new.spinner('0')
- expect(Ayadn::Settings.options[:scroll][:spinner]).to eq false
+ expect(Ayadn::Settings.options.scroll.spinner).to eq false
end
end
describe "#date" do
it "creates a default value" do
Ayadn::SetScroll.new.date('true')
- expect(Ayadn::Settings.options[:scroll][:date]).to eq true
+ expect(Ayadn::Settings.options.scroll.date).to eq true
Ayadn::SetScroll.new.date('false')
- expect(Ayadn::Settings.options[:scroll][:date]).to eq false
+ expect(Ayadn::Settings.options.scroll.date).to eq false
Ayadn::SetScroll.new.date('0')
- expect(Ayadn::Settings.options[:scroll][:date]).to eq false
+ expect(Ayadn::Settings.options.scroll.date).to eq false
end
end
after do
File.delete('spec/mock/ayadn.log')
end
end
-describe Ayadn::SetColor do
- before do
- init_stubs
- end
-
- describe "#" do
- it "creates a default value" do
- colors_list = %w{red green magenta cyan yellow blue white black}
- %w{id index username name date link dots hashtags mentions source symbols debug}.each do |meth|
- command = meth.to_sym
- color = colors_list.sample
- Ayadn::SetColor.new.send(command, color)
- expect(Ayadn::Settings.options[:colors][command]).to eq color.to_sym
- end
- end
- end
-
- after do
- File.delete('spec/mock/ayadn.log')
- end
-end
-
describe Ayadn::SetFormats do
before do
init_stubs
end
describe "#table" do
it "creates a default table width" do
Ayadn::SetFormats.new.send(:table, ['width', '80'])
- expect(Ayadn::Settings.options[:formats][:table][:width]).to eq 80
+ expect(Ayadn::Settings.options.formats.table.width).to eq 80
end
it "creates a default table width" do
Ayadn::SetFormats.new.send(:table, ['width', '33'])
- expect(Ayadn::Settings.options[:formats][:table][:width]).to eq 75
+ expect(Ayadn::Settings.options.formats.table.width).to eq 75
end
it "creates a default table width" do
Ayadn::SetFormats.new.send(:table, ['width', 'yolo'])
- expect(Ayadn::Settings.options[:formats][:table][:width]).to eq 75
+ expect(Ayadn::Settings.options.formats.table.width).to eq 75
end
end
describe "#list" do
it "creates a default list order" do
Ayadn::SetFormats.new.send(:list, ['reverse', 'false'])
- expect(Ayadn::Settings.options[:formats][:list][:reverse]).to eq false
+ expect(Ayadn::Settings.options.formats.list.reverse).to eq false
end
it "raises an error" do
printed = capture_stdout do
expect(lambda {Ayadn::SetFormats.new.send(:list, ['reverse', 'yolo'])}).to raise_error(SystemExit)
end
@@ -195,62 +200,20 @@
after do
File.delete('spec/mock/ayadn.log')
end
end
-describe Ayadn::SetTimeline do
- before do
- init_stubs
- end
-
- describe "#" do
- it "creates a default value" do
- %w{directed source symbols name date debug compact}.each do |meth|
- command = meth.to_sym
- Ayadn::SetTimeline.new.send(command, 'true')
- expect(Ayadn::Settings.options[:timeline][command]).to eq true
- printed = capture_stdout do
- expect(lambda {Ayadn::SetTimeline.new.send(command, 'yolo')}).to raise_error(SystemExit)
- end
- end
- end
- end
-
- after do
- File.delete('spec/mock/ayadn.log')
- end
-end
-
-describe Ayadn::SetCounts do
- before do
- init_stubs
- end
-
- describe "#" do
- it "creates a default value" do
- %w{default unified global checkins conversations photos trending mentions convo posts messages search whoreposted whostarred whatstarred files}.each do |meth|
- command = meth.to_sym
- Ayadn::SetCounts.new.send(command, '199')
- expect(Ayadn::Settings.options[:counts][command]).to eq 199
- printed = capture_stdout do
- Ayadn::SetCounts.new.send(command, '333')
- end
- end
- end
- end
-end
-
describe Ayadn::SetMarker do
before do
init_stubs
end
describe "#messages" do
it "creates a default value" do
- expect(Ayadn::Settings.options[:marker][:messages]).to eq true
+ expect(Ayadn::Settings.options.marker.messages).to eq true
Ayadn::SetMarker.new.messages('0')
- expect(Ayadn::Settings.options[:marker][:messages]).to eq false
+ expect(Ayadn::Settings.options.marker.messages).to eq false
end
end
after do
File.delete('spec/mock/ayadn.log')
@@ -262,27 +225,27 @@
init_stubs
end
describe "#posts" do
it "creates a default value" do
- expect(Ayadn::Settings.options[:backup][:posts]).to eq false
+ expect(Ayadn::Settings.options.backup.posts).to eq false
Ayadn::SetBackup.new.posts('1')
- expect(Ayadn::Settings.options[:backup][:posts]).to eq true
+ expect(Ayadn::Settings.options.backup.posts).to eq true
end
end
describe "#messages" do
it "creates a default value" do
- expect(Ayadn::Settings.options[:backup][:messages]).to eq false
+ expect(Ayadn::Settings.options.backup.messages).to eq false
Ayadn::SetBackup.new.messages('True')
- expect(Ayadn::Settings.options[:backup][:messages]).to eq true
+ expect(Ayadn::Settings.options.backup.messages).to eq true
end
end
describe "#lists" do
it "creates a default value" do
- expect(Ayadn::Settings.options[:backup][:lists]).to eq false
+ expect(Ayadn::Settings.options.backup.lists).to eq false
Ayadn::SetBackup.new.lists('YES')
- expect(Ayadn::Settings.options[:backup][:lists]).to eq true
+ expect(Ayadn::Settings.options.backup.lists).to eq true
end
end
describe "#validate" do
it "validates a correct boolean" do
@@ -298,73 +261,41 @@
after do
File.delete('spec/mock/ayadn.log')
end
end
-describe Ayadn::SetMovie do
- before do
- init_stubs
- end
- describe "#hashtag" do
- it "creates a new hashtag default" do
- expect(Ayadn::Settings.options[:movie][:hashtag]).to eq 'nowwatching'
- Ayadn::SetMovie.new.hashtag('yolo')
- expect(Ayadn::Settings.options[:movie][:hashtag]).to eq 'yolo'
- end
- end
- after do
- File.delete('spec/mock/ayadn.log')
- end
-end
-
-describe Ayadn::SetTVShow do
- before do
- init_stubs
- end
- describe "#hashtag" do
- it "creates a new hashtag default" do
- expect(Ayadn::Settings.options[:tvshow][:hashtag]).to eq 'nowwatching'
- Ayadn::SetTVShow.new.hashtag('yolo')
- expect(Ayadn::Settings.options[:tvshow][:hashtag]).to eq 'yolo'
- end
- end
- after do
- File.delete('spec/mock/ayadn.log')
- end
-end
-
describe Ayadn::SetNiceRank do
before do
init_stubs
end
describe "#threshold" do
it "creates a new threshold default" do
- expect(Ayadn::Settings.options[:nicerank][:threshold]).to eq 2.1
+ expect(Ayadn::Settings.options.nicerank.threshold).to eq 2.1
Ayadn::SetNiceRank.new.threshold('3')
- expect(Ayadn::Settings.options[:nicerank][:threshold]).to eq 3
+ expect(Ayadn::Settings.options.nicerank.threshold).to eq 3
Ayadn::SetNiceRank.new.threshold('3.2')
- expect(Ayadn::Settings.options[:nicerank][:threshold]).to eq 3.2
+ expect(Ayadn::Settings.options.nicerank.threshold).to eq 3.2
end
end
describe "#filter" do
it "creates a new filter default" do
- expect(Ayadn::Settings.options[:nicerank][:filter]).to eq true
+ expect(Ayadn::Settings.options.nicerank.filter).to eq true
Ayadn::SetNiceRank.new.filter('false')
- expect(Ayadn::Settings.options[:nicerank][:filter]).to eq false
+ expect(Ayadn::Settings.options.nicerank.filter).to eq false
Ayadn::SetNiceRank.new.filter('1')
- expect(Ayadn::Settings.options[:nicerank][:filter]).to eq true
+ expect(Ayadn::Settings.options.nicerank.filter).to eq true
printed = capture_stdout do
expect(lambda {Ayadn::SetNiceRank.new.filter('6')}).to raise_error(SystemExit)
end
end
end
describe "#unranked" do
it "creates a new unranked default" do
- expect(Ayadn::Settings.options[:nicerank][:unranked]).to eq false
+ expect(Ayadn::Settings.options.nicerank.unranked).to eq false
Ayadn::SetNiceRank.new.unranked('true')
- expect(Ayadn::Settings.options[:nicerank][:unranked]).to eq true
+ expect(Ayadn::Settings.options.nicerank.unranked).to eq true
Ayadn::SetNiceRank.new.unranked('0')
- expect(Ayadn::Settings.options[:nicerank][:unranked]).to eq false
+ expect(Ayadn::Settings.options.nicerank.unranked).to eq false
printed = capture_stdout do
expect(lambda {Ayadn::SetNiceRank.new.unranked('yolo')}).to raise_error(SystemExit)
end
end
end