summaryrefslogtreecommitdiff
path: root/spec/commands/gist_spec.rb
blob: 4f9b6d96a9499bf40672988499f54e6a6eec3569 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# These tests are out of date.
# THey need to be updated for the new 'gist' API, but im too sleepy to
# do that now.

require_relative '../helper'

describe 'gist' do
  it 'has a dependency on the jist gem' do
    Pry::Command::Gist.command_options[:requires_gem].should == "jist"
  end
end

#   before do
#     Pad.jist_calls = {}
#   end

#   # In absence of normal mocking, just monkeysmash these with no undoing after.
#   module Jist
#     class << self
#       def login!; Pad.jist_calls[:login!] = true end
#       def gist(*args)
#         Pad.jist_calls[:gist_args] = args
#         {'html_url' => 'http://gist.blahblah'}
#       end
#       def copy(content); Pad.jist_calls[:copy_args] = content end
#     end
#   end

#   module Pry::Gist
#     # a) The actual require fails for jruby for some odd reason.
#     # b) 100% of jist should be stubbed by the above, so this ensures that.
#     def self.require_jist; 'nope' end
#   end

#   it 'nominally logs in' do
#     pry_eval 'gist --login'
#     Pad.jist_calls[:login!].should.not.be.nil
#   end

#   EXAMPLE_REPL_METHOD = <<-EOT
#   # docdoc
#   def my_method
#     # line 1
#     'line 2'
#     line 3
#     Line.four
#   end
#   EOT

#   RANDOM_COUPLE_OF_LINES = %w(a=1 b=2)
#   run_case = proc do |sym|
#     actual_command = Pry::Gist.example_code(sym)
#     pry_eval EXAMPLE_REPL_METHOD, RANDOM_COUPLE_OF_LINES, actual_command
#   end

#   it 'deduces filenames' do
#     Pry::Gist::INVOCATIONS.keys.each do |e|
#       run_case.call(e)
#       if Pad.jist_calls[:gist_args]
#         text, args = Pad.jist_calls[:gist_args]
#         args[:filename].should.not == '(pry)'
#       end
#       Pad.jist_calls[:copy_args].should.not.be.nil
#     end
#   end

#   it 'equates aliae' do
#     run_case.call(:clipit).should == run_case.call(:cliponly)
#     run_case.call(:jist).should   == run_case.call(:class)
#   end

#   it 'has a reasonable --help' do
#     help = pry_eval('gist --help')
#     Pry::Gist::INVOCATIONS.keys.each do |e|
#       help.should.include? Pry::Gist.example_code(e)
#       help.should.include? Pry::Gist.example_description(e)
#     end
#   end
# end