|
4 | 4 |
|
5 | 5 | module WebConsole |
6 | 6 | class SessionTest < ActiveSupport::TestCase |
7 | | - class LineAwareError < StandardError |
8 | | - def self.raise |
9 | | - ::Kernel.raise new(__LINE__) |
| 7 | + class ValueAwareError < StandardError |
| 8 | + def self.raise(value) |
| 9 | + ::Kernel.raise self, value |
10 | 10 | rescue => exc |
11 | 11 | exc |
12 | 12 | end |
13 | 13 |
|
14 | | - attr_reader :line |
| 14 | + attr_reader :value |
15 | 15 |
|
16 | | - def initialize(line) |
17 | | - @line = line |
| 16 | + def initialize(value) |
| 17 | + @value = value |
18 | 18 | end |
19 | 19 | end |
20 | 20 |
|
@@ -52,38 +52,39 @@ def eval(string) |
52 | 52 | end |
53 | 53 |
|
54 | 54 | test "#from can create session from a single binding" do |
55 | | - saved_line, saved_binding = __LINE__, binding |
| 55 | + value, saved_binding = __LINE__, binding |
56 | 56 | Thread.current[:__web_console_binding] = saved_binding |
57 | 57 |
|
58 | 58 | session = Session.from(__web_console_binding: saved_binding) |
59 | 59 |
|
60 | | - assert_equal "=> #{saved_line}\n", session.eval("__LINE__") |
| 60 | + assert_equal "=> #{value}\n", session.eval("value") |
61 | 61 | end |
62 | 62 |
|
63 | 63 | test "#from can create session from an exception" do |
64 | | - exc = LineAwareError.raise |
| 64 | + value = __LINE__ |
| 65 | + exc = ValueAwareError.raise(value) |
65 | 66 |
|
66 | 67 | session = Session.from(__web_console_exception: exc) |
67 | 68 |
|
68 | | - assert_equal "=> #{exc.line}\n", session.eval("__LINE__") |
| 69 | + assert_equal "=> #{exc.value}\n", session.eval("value") |
69 | 70 | end |
70 | 71 |
|
71 | 72 | test "#from can switch to bindings" do |
72 | | - exc, saved_line = LineAwareError.raise, __LINE__ |
| 73 | + value = __LINE__ |
| 74 | + exc = ValueAwareError.raise(value) |
73 | 75 |
|
74 | 76 | session = Session.from(__web_console_exception: exc) |
75 | 77 | session.switch_binding_to(1) |
76 | 78 |
|
77 | | - assert_equal "=> #{saved_line}\n", session.eval("__LINE__") |
| 79 | + assert_equal "=> #{value}\n", session.eval("value") |
78 | 80 | end |
79 | 81 |
|
80 | 82 | test "#from prioritizes exceptions over bindings" do |
81 | | - exc, saved_line = LineAwareError.raise, __LINE__ |
| 83 | + exc = ValueAwareError.raise(42) |
82 | 84 |
|
83 | 85 | session = Session.from(__web_console_exception: exc, __web_console_binding: binding) |
84 | | - session.switch_binding_to(1) |
85 | 86 |
|
86 | | - assert_equal "=> #{saved_line}\n", session.eval("__LINE__") |
| 87 | + assert_equal "=> WebConsole::SessionTest::ValueAwareError\n", session.eval("self") |
87 | 88 | end |
88 | 89 | end |
89 | 90 | end |
0 commit comments