LittleWeasel 5.0.5 → 5.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +9 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +27 -16
- data/LittleWeasel.gemspec +5 -5
- data/lib/LittleWeasel/version.rb +1 -1
- data/spec/factories/dictionary.rb +27 -27
- data/spec/factories/dictionary_cache_service.rb +4 -6
- data/spec/factories/dictionary_creator_service.rb +1 -1
- data/spec/factories/dictionary_file_loader_service.rb +1 -1
- data/spec/factories/dictionary_hash.rb +26 -26
- data/spec/factories/dictionary_key.rb +1 -1
- data/spec/factories/dictionary_killer_service.rb +1 -1
- data/spec/factories/dictionary_manager.rb +1 -1
- data/spec/factories/dictionary_metadata.rb +1 -1
- data/spec/factories/dictionary_metadata_service.rb +1 -1
- data/spec/factories/numeric_filter.rb +1 -1
- data/spec/factories/preprocessed_word.rb +1 -1
- data/spec/factories/preprocessed_words.rb +1 -1
- data/spec/factories/single_character_word_filter.rb +1 -1
- data/spec/factories/word_results.rb +1 -1
- data/spec/lib/LittleWeasel/block_results_spec.rb +23 -23
- data/spec/lib/LittleWeasel/configure_spec.rb +3 -3
- data/spec/lib/LittleWeasel/dictionary_key_spec.rb +9 -9
- data/spec/lib/LittleWeasel/dictionary_manager_spec.rb +29 -29
- data/spec/lib/LittleWeasel/dictionary_spec.rb +30 -29
- data/spec/lib/LittleWeasel/filters/en_us/currency_filter_spec.rb +26 -26
- data/spec/lib/LittleWeasel/filters/en_us/numeric_filter_spec.rb +17 -17
- data/spec/lib/LittleWeasel/filters/en_us/single_character_word_filter_spec.rb +8 -8
- data/spec/lib/LittleWeasel/filters/word_filter_managable_spec.rb +19 -19
- data/spec/lib/LittleWeasel/filters/word_filter_spec.rb +17 -17
- data/spec/lib/LittleWeasel/filters/word_filter_validatable_spec.rb +27 -12
- data/spec/lib/LittleWeasel/filters/word_filters_validatable_spec.rb +6 -6
- data/spec/lib/LittleWeasel/integraton_tests/dictionary_integration_spec.rb +23 -23
- data/spec/lib/LittleWeasel/metadata/dictionary_creator_servicable_spec.rb +7 -6
- data/spec/lib/LittleWeasel/metadata/dictionary_metadata_spec.rb +13 -13
- data/spec/lib/LittleWeasel/metadata/invalid_words_metadata_spec.rb +17 -17
- data/spec/lib/LittleWeasel/metadata/metadata_observerable_spec.rb +1 -1
- data/spec/lib/LittleWeasel/modules/dictionary_file_loader_spec.rb +30 -30
- data/spec/lib/LittleWeasel/modules/dictionary_sourceable_spec.rb +21 -21
- data/spec/lib/LittleWeasel/modules/language_spec.rb +5 -5
- data/spec/lib/LittleWeasel/modules/locale_spec.rb +1 -1
- data/spec/lib/LittleWeasel/modules/region_spec.rb +5 -5
- data/spec/lib/LittleWeasel/preprocessors/en_us/capitalize_preprocessor_spec.rb +8 -6
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_spec.rb +3 -3
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_word_validatable_spec.rb +14 -3
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_spec.rb +8 -10
- data/spec/lib/LittleWeasel/preprocessors/preprocessed_words_validatable_spec.rb +6 -4
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_managable_spec.rb +27 -28
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_spec.rb +25 -29
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessor_validatable_spec.rb +10 -2
- data/spec/lib/LittleWeasel/preprocessors/word_preprocessors_validatable_spec.rb +4 -6
- data/spec/lib/LittleWeasel/services/dictionary_cache_service_spec.rb +51 -49
- data/spec/lib/LittleWeasel/services/dictionary_creator_service_spec.rb +14 -14
- data/spec/lib/LittleWeasel/services/dictionary_file_loader_service_spec.rb +30 -30
- data/spec/lib/LittleWeasel/services/dictionary_metadata_service_spec.rb +22 -22
- data/spec/lib/LittleWeasel/word_results_spec.rb +29 -32
- data/spec/lib/LittleWeasel/workflow/workflow_spec.rb +2 -2
- data/spec/spec_helper.rb +56 -56
- data/spec/support/factory_bot.rb +1 -2
- data/spec/support/file_helpers.rb +2 -2
- data/spec/support/general_helpers.rb +2 -1
- data/spec/support/shared_contexts.rb +13 -9
- data/spec/support/shared_examples.rb +10 -8
- metadata +25 -19
@@ -29,7 +29,7 @@ RSpec.describe LittleWeasel::Metadata::InvalidWordsMetadata do
|
|
29
29
|
|
30
30
|
let(:configuration) { LittleWeasel.configuration }
|
31
31
|
|
32
|
-
#new
|
32
|
+
# new
|
33
33
|
describe '#new' do
|
34
34
|
context 'with invalid arguments' do
|
35
35
|
subject { invalid_words_metadata }
|
@@ -39,7 +39,7 @@ RSpec.describe LittleWeasel::Metadata::InvalidWordsMetadata do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
context 'with invalid dictionary metadata object' do
|
42
|
-
let(:dictionary_words) { {
|
42
|
+
let(:dictionary_words) { { a: true, b: true } }
|
43
43
|
let(:dictionary_metadata_object) { :wrong_type }
|
44
44
|
|
45
45
|
it 'raises an error' do
|
@@ -48,7 +48,7 @@ RSpec.describe LittleWeasel::Metadata::InvalidWordsMetadata do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
context 'with invalid dictionary metadata' do
|
51
|
-
let(:dictionary_words) { {
|
51
|
+
let(:dictionary_words) { { a: true, b: true } }
|
52
52
|
let(:dictionary_metadata) { :wrong_type }
|
53
53
|
|
54
54
|
it 'raises an error' do
|
@@ -75,16 +75,16 @@ RSpec.describe LittleWeasel::Metadata::InvalidWordsMetadata do
|
|
75
75
|
let(:word_results2) { create(:word_results, original_word: 'badword2') }
|
76
76
|
|
77
77
|
it 'instantiates without error' do
|
78
|
-
expect { subject }.
|
78
|
+
expect { subject }.not_to raise_error
|
79
79
|
end
|
80
80
|
|
81
81
|
it 'initializes the necessary object attributes' do
|
82
|
-
expect(subject.on?).to
|
83
|
-
expect(subject.off?).to
|
82
|
+
expect(subject.on?).to be true
|
83
|
+
expect(subject.off?).to be false
|
84
84
|
expect(subject.value).to eq configuration.max_invalid_words_bytesize
|
85
|
-
expect(subject.value_exceeded?).to
|
85
|
+
expect(subject.value_exceeded?).to be false
|
86
86
|
expect(subject.current_invalid_word_bytesize).to eq 16
|
87
|
-
expect(subject.cache_invalid_words?).to
|
87
|
+
expect(subject.cache_invalid_words?).to be true
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
@@ -109,30 +109,30 @@ RSpec.describe LittleWeasel::Metadata::InvalidWordsMetadata do
|
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
112
|
-
#refresh
|
112
|
+
# refresh
|
113
113
|
describe '#refresh' do
|
114
114
|
it 'the metadata is refreshed' do
|
115
115
|
expect(subject.current_invalid_word_bytesize).to eq 0
|
116
116
|
expect do
|
117
117
|
dictionary.word_results('badword')
|
118
118
|
subject.refresh
|
119
|
-
end.to change
|
120
|
-
|
119
|
+
end.to change(subject, :current_invalid_word_bytesize)
|
120
|
+
.from(0).to(7)
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
|
-
#init
|
124
|
+
# init
|
125
125
|
describe '#init' do
|
126
126
|
it 'the metadata is initialized' do
|
127
127
|
expect do
|
128
128
|
subject.dictionary_metadata_object.dictionary_words['not-found'] = false
|
129
129
|
subject.init
|
130
|
-
end.to change
|
131
|
-
|
130
|
+
end.to change(subject, :current_invalid_word_bytesize)
|
131
|
+
.from(0).to(9)
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
|
-
#Update
|
135
|
+
# Update
|
136
136
|
describe '#update' do
|
137
137
|
context 'with an action NOT on the whitelist' do
|
138
138
|
let(:action) { :bad_action! }
|
@@ -147,8 +147,8 @@ RSpec.describe LittleWeasel::Metadata::InvalidWordsMetadata do
|
|
147
147
|
it 'carries out the requested action' do
|
148
148
|
expect do
|
149
149
|
dictionary.word_results 'not-found'
|
150
|
-
end.to change
|
151
|
-
|
150
|
+
end.to change(subject, :current_invalid_word_bytesize)
|
151
|
+
.from(0).to(9)
|
152
152
|
end
|
153
153
|
end
|
154
154
|
end
|
@@ -37,7 +37,7 @@ RSpec.describe LittleWeasel::Modules::DictionaryFileLoader, type: :module do
|
|
37
37
|
let(:dictionary_file_key) { file }
|
38
38
|
let(:dictionary_cache) { {} }
|
39
39
|
|
40
|
-
#load
|
40
|
+
# load
|
41
41
|
describe '#load' do
|
42
42
|
context 'with an invalid dictionary file' do
|
43
43
|
context 'when it cannot be found' do
|
@@ -52,7 +52,7 @@ RSpec.describe LittleWeasel::Modules::DictionaryFileLoader, type: :module do
|
|
52
52
|
let(:dictionary_path) { dictionary_path_for file_name: 'empty-dictionary' }
|
53
53
|
|
54
54
|
it 'raises an error' do
|
55
|
-
expect { subject.load dictionary_path
|
55
|
+
expect { subject.load dictionary_path }.to raise_error LittleWeasel::Errors::DictionaryFileEmptyError
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
@@ -64,7 +64,7 @@ RSpec.describe LittleWeasel::Modules::DictionaryFileLoader, type: :module do
|
|
64
64
|
let(:dictionary_path) { language_dictionary_path language: :en }
|
65
65
|
|
66
66
|
it 'raises an error' do
|
67
|
-
expect { subject.load dictionary_path
|
67
|
+
expect { subject.load dictionary_path }.to raise_error LittleWeasel::Errors::DictionaryFileTooLargeError
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
@@ -78,39 +78,39 @@ RSpec.describe LittleWeasel::Modules::DictionaryFileLoader, type: :module do
|
|
78
78
|
before { subject }
|
79
79
|
|
80
80
|
it 'does not raise an error' do
|
81
|
-
expect { subject }.
|
81
|
+
expect { subject }.not_to raise_error
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
85
|
context 'when the dictionary is NOT already loaded/cached' do
|
86
86
|
let(:expected_dictionary_key_key) { LittleWeasel::DictionaryKey.new(language: language, region: region, tag: tag).key }
|
87
87
|
let(:expected_results) do
|
88
|
-
[
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
88
|
+
%w[apple
|
89
|
+
better
|
90
|
+
cat
|
91
|
+
dog
|
92
|
+
everyone
|
93
|
+
fat
|
94
|
+
game
|
95
|
+
help
|
96
|
+
italic
|
97
|
+
jasmine
|
98
|
+
kelp
|
99
|
+
love
|
100
|
+
man
|
101
|
+
nope
|
102
|
+
octopus
|
103
|
+
popeye
|
104
|
+
queue
|
105
|
+
ruby
|
106
|
+
stop
|
107
|
+
top
|
108
|
+
ultimate
|
109
|
+
very
|
110
|
+
was
|
111
|
+
xylophone
|
112
|
+
yes
|
113
|
+
zebra]
|
114
114
|
end
|
115
115
|
|
116
116
|
it 'returns an Array of dictionary words loaded from the file' do
|
@@ -18,63 +18,63 @@ RSpec.describe LittleWeasel::Modules::DictionarySourceable, type: :module do
|
|
18
18
|
let(:dictionary_memory_source) { described_class.memory_source }
|
19
19
|
let(:dictionary_file_source) { language_dictionary_path language: :en }
|
20
20
|
|
21
|
-
|
21
|
+
# .MEMORY_SOURCE
|
22
22
|
describe '::MEMORY_SOURCE' do
|
23
23
|
it 'returns the memory source prefix' do
|
24
24
|
expect(described_class::MEMORY_SOURCE).to eq '*'
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
|
28
|
+
# .memory_source
|
29
29
|
describe '.memory_source' do
|
30
30
|
it 'returns a new memory source' do
|
31
31
|
expect(described_class.memory_source).to be_truthy
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
|
35
|
+
# .file_source?
|
36
36
|
describe '.file_source?' do
|
37
37
|
context 'when dictionary_source is a file source' do
|
38
38
|
it 'returns truthy' do
|
39
|
-
expect(described_class.
|
39
|
+
expect(described_class).to be_file_source(dictionary_file_source)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
43
|
context 'when dictionary_source is NOT a file source' do
|
44
44
|
it 'returns falsey' do
|
45
|
-
expect(described_class.
|
45
|
+
expect(described_class).not_to be_file_source(dictionary_memory_source)
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
-
|
50
|
+
# .memory_source?
|
51
51
|
describe '.memory_source?' do
|
52
52
|
context 'when dictionary_source is a memory source' do
|
53
53
|
it 'returns truthy if argument is a valid memory source' do
|
54
|
-
expect(described_class.
|
55
|
-
expect(described_class.
|
56
|
-
expect(described_class.
|
57
|
-
expect(described_class.
|
54
|
+
expect(described_class).to be_memory_source('*12345678')
|
55
|
+
expect(described_class).to be_memory_source('*abcdef00')
|
56
|
+
expect(described_class).to be_memory_source('*ABCDEF00')
|
57
|
+
expect(described_class).to be_memory_source('*aBcDeF00')
|
58
58
|
end
|
59
59
|
|
60
60
|
it 'returns falsey if argument is NOT a memory source' do
|
61
|
-
expect(described_class.
|
62
|
-
expect(described_class.
|
63
|
-
expect(described_class.
|
64
|
-
expect(described_class.
|
65
|
-
expect(described_class.
|
61
|
+
expect(described_class).not_to be_memory_source('*123456789')
|
62
|
+
expect(described_class).not_to be_memory_source('*abcdefg0')
|
63
|
+
expect(described_class).not_to be_memory_source('*ABCDEFG0')
|
64
|
+
expect(described_class).not_to be_memory_source('*aBcDeFg0')
|
65
|
+
expect(described_class).not_to be_memory_source('$12345678')
|
66
66
|
|
67
|
-
expect(described_class.
|
68
|
-
expect(described_class.
|
69
|
-
expect(described_class.
|
70
|
-
expect(described_class.
|
71
|
-
expect(described_class.
|
67
|
+
expect(described_class).not_to be_memory_source('123456789')
|
68
|
+
expect(described_class).not_to be_memory_source('abcdefg0')
|
69
|
+
expect(described_class).not_to be_memory_source('ABCDEFG0')
|
70
|
+
expect(described_class).not_to be_memory_source('aBcDeFg0')
|
71
|
+
expect(described_class).not_to be_memory_source('123456789')
|
72
72
|
end
|
73
73
|
end
|
74
74
|
|
75
75
|
context 'when dictionary_source is a file source' do
|
76
76
|
it 'returns falsey' do
|
77
|
-
expect(described_class.
|
77
|
+
expect(described_class).not_to be_memory_source(dictionary_file_source)
|
78
78
|
end
|
79
79
|
end
|
80
80
|
end
|
@@ -23,24 +23,24 @@ RSpec.describe LittleWeasel::Modules::Language, type: :module do
|
|
23
23
|
|
24
24
|
let(:language) {}
|
25
25
|
|
26
|
-
#language?
|
26
|
+
# language?
|
27
27
|
describe '#language?' do
|
28
28
|
context 'when language is present?' do
|
29
29
|
let(:language) { :es }
|
30
30
|
|
31
31
|
it 'returns true' do
|
32
|
-
expect(subject.language?).to
|
32
|
+
expect(subject.language?).to be true
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
context 'when language is NOT present?' do
|
37
37
|
it 'returns false' do
|
38
|
-
expect(subject.language?).to
|
38
|
+
expect(subject.language?).to be false
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
#normalize_language!
|
43
|
+
# normalize_language!
|
44
44
|
describe '#normalize_language!' do
|
45
45
|
context 'when language is present?' do
|
46
46
|
context 'when language responds to #upcase!' do
|
@@ -75,7 +75,7 @@ RSpec.describe LittleWeasel::Modules::Language, type: :module do
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
-
|
78
|
+
# .normalize_language
|
79
79
|
describe '#.normalize_language' do
|
80
80
|
context 'with a non-nil language' do
|
81
81
|
context 'when passing a Symbol' do
|
@@ -23,24 +23,24 @@ RSpec.describe LittleWeasel::Modules::Region, type: :module do
|
|
23
23
|
|
24
24
|
let(:region) {}
|
25
25
|
|
26
|
-
#region?
|
26
|
+
# region?
|
27
27
|
describe '#region?' do
|
28
28
|
context 'when region is present?' do
|
29
29
|
let(:region) { :es }
|
30
30
|
|
31
31
|
it 'returns true' do
|
32
|
-
expect(subject.region?).to
|
32
|
+
expect(subject.region?).to be true
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
context 'when region is NOT present?' do
|
37
37
|
it 'returns false' do
|
38
|
-
expect(subject.region?).to
|
38
|
+
expect(subject.region?).to be false
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
#normalize_region!
|
43
|
+
# normalize_region!
|
44
44
|
describe '#normalize_region!' do
|
45
45
|
context 'when region is present?' do
|
46
46
|
context 'when region responds to #upcase' do
|
@@ -75,7 +75,7 @@ RSpec.describe LittleWeasel::Modules::Region, type: :module do
|
|
75
75
|
end
|
76
76
|
end
|
77
77
|
|
78
|
-
|
78
|
+
# .normalize_region
|
79
79
|
describe '#.normalize_region' do
|
80
80
|
context 'with a non-nil region' do
|
81
81
|
context 'when passing a Symbol' do
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# frozen_string_literals: true
|
2
4
|
|
3
5
|
require 'spec_helper'
|
@@ -5,10 +7,10 @@ require 'spec_helper'
|
|
5
7
|
RSpec.describe LittleWeasel::Preprocessors::EnUs::CapitalizePreprocessor do
|
6
8
|
subject { described_class.new }
|
7
9
|
|
8
|
-
|
10
|
+
# .new
|
9
11
|
describe '.new' do
|
10
12
|
it 'instantiates the object' do
|
11
|
-
expect { subject }.
|
13
|
+
expect { subject }.not_to raise_error
|
12
14
|
end
|
13
15
|
|
14
16
|
describe '#order' do
|
@@ -19,16 +21,16 @@ RSpec.describe LittleWeasel::Preprocessors::EnUs::CapitalizePreprocessor do
|
|
19
21
|
|
20
22
|
describe '#preprocessor_on' do
|
21
23
|
it 'sets #preprocessor_on to true by default' do
|
22
|
-
expect(subject.preprocessor_on).to
|
24
|
+
expect(subject.preprocessor_on).to be true
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
26
28
|
|
27
|
-
|
29
|
+
# .preprocess
|
28
30
|
describe '.preprocess' do
|
29
31
|
it 'processes and capitalizes the word' do
|
30
|
-
expect(described_class.preprocess
|
31
|
-
expect(described_class.preprocess
|
32
|
+
expect(described_class.preprocess('wOrD')).to eq [true, 'Word']
|
33
|
+
expect(described_class.preprocess('Word')).to eq [true, 'Word']
|
32
34
|
end
|
33
35
|
end
|
34
36
|
end
|
@@ -19,7 +19,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWord do
|
|
19
19
|
let(:preprocessed) { true }
|
20
20
|
let(:preprocessor_order) { :preprocessor_order }
|
21
21
|
|
22
|
-
|
22
|
+
# .new
|
23
23
|
describe '.new' do
|
24
24
|
context 'initializes the attributes' do
|
25
25
|
describe '#original_word' do
|
@@ -89,7 +89,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWord do
|
|
89
89
|
describe '#preprocessed?' do
|
90
90
|
context 'when preprocessed is true' do
|
91
91
|
it 'returns true' do
|
92
|
-
expect(subject.preprocessed?).to
|
92
|
+
expect(subject.preprocessed?).to be true
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
@@ -97,7 +97,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWord do
|
|
97
97
|
let(:preprocessed) { false }
|
98
98
|
|
99
99
|
it 'returns false' do
|
100
|
-
expect(subject.preprocessed?).to
|
100
|
+
expect(subject.preprocessed?).to be false
|
101
101
|
end
|
102
102
|
end
|
103
103
|
end
|
@@ -27,21 +27,22 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
27
27
|
end
|
28
28
|
let(:original_word) { 'word' }
|
29
29
|
let(:preprocessed) { true }
|
30
|
-
let(:preprocessed_word) { 'preprocessed-word0'}
|
30
|
+
let(:preprocessed_word) { 'preprocessed-word0' }
|
31
31
|
let(:preprocessor) { :preprocesor0 }
|
32
32
|
let(:preprocessor_order) { 0 }
|
33
33
|
|
34
|
-
|
34
|
+
# .validate_prepreprocessed_word
|
35
35
|
describe '.validate_prepreprocessed_word' do
|
36
36
|
context 'when the object is valid' do
|
37
37
|
it 'does not raise an error' do
|
38
|
-
expect { PreprocessedWordValidatable.validate_prepreprocessed_word(preprocessed_word: preprocessed_word_object) }.
|
38
|
+
expect { PreprocessedWordValidatable.validate_prepreprocessed_word(preprocessed_word: preprocessed_word_object) }.not_to raise_error
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
context 'when the object is INVALID' do
|
43
43
|
context 'when #original_word is missing' do
|
44
44
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
45
|
+
|
45
46
|
let(:method) { :original_word }
|
46
47
|
|
47
48
|
it 'raises an eror' do
|
@@ -51,6 +52,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
51
52
|
|
52
53
|
context 'when #original_word= is missing' do
|
53
54
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
55
|
+
|
54
56
|
let(:method) { :original_word= }
|
55
57
|
|
56
58
|
it 'raises an eror' do
|
@@ -60,6 +62,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
60
62
|
|
61
63
|
context 'when #preprocessed_word is missing' do
|
62
64
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
65
|
+
|
63
66
|
let(:method) { :preprocessed_word }
|
64
67
|
|
65
68
|
it 'raises an eror' do
|
@@ -69,6 +72,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
69
72
|
|
70
73
|
context 'when #preprocessed_word= is missing' do
|
71
74
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
75
|
+
|
72
76
|
let(:method) { :preprocessed_word= }
|
73
77
|
|
74
78
|
it 'raises an eror' do
|
@@ -78,6 +82,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
78
82
|
|
79
83
|
context 'when #preprocessed is missing' do
|
80
84
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
85
|
+
|
81
86
|
let(:method) { :preprocessed }
|
82
87
|
|
83
88
|
it 'raises an eror' do
|
@@ -87,6 +92,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
87
92
|
|
88
93
|
context 'when #preprocessed= is missing' do
|
89
94
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
95
|
+
|
90
96
|
let(:method) { :preprocessed= }
|
91
97
|
|
92
98
|
it 'raises an eror' do
|
@@ -96,6 +102,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
96
102
|
|
97
103
|
context 'when #preprocessed? is missing' do
|
98
104
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
105
|
+
|
99
106
|
let(:method) { :preprocessed? }
|
100
107
|
|
101
108
|
it 'raises an eror' do
|
@@ -105,6 +112,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
105
112
|
|
106
113
|
context 'when #preprocessor is missing' do
|
107
114
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
115
|
+
|
108
116
|
let(:method) { :preprocessor }
|
109
117
|
|
110
118
|
it 'raises an eror' do
|
@@ -114,6 +122,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
114
122
|
|
115
123
|
context 'when #preprocessor= is missing' do
|
116
124
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
125
|
+
|
117
126
|
let(:method) { :preprocessor= }
|
118
127
|
|
119
128
|
it 'raises an eror' do
|
@@ -123,6 +132,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
123
132
|
|
124
133
|
context 'when #preprocessor_order is missing' do
|
125
134
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
135
|
+
|
126
136
|
let(:method) { :preprocessor_order }
|
127
137
|
|
128
138
|
it 'raises an eror' do
|
@@ -132,6 +142,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordValidatable, type: :
|
|
132
142
|
|
133
143
|
context 'when #preprocessor_order= is missing' do
|
134
144
|
before { allow(preprocessed_word_object).to receive(:respond_to?).with(method).and_return(false) }
|
145
|
+
|
135
146
|
let(:method) { :preprocessor_order= }
|
136
147
|
|
137
148
|
it 'raises an eror' do
|
@@ -8,20 +8,20 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
8
8
|
let(:original_word) { 'word' }
|
9
9
|
let(:preprocessed_words) {}
|
10
10
|
|
11
|
-
|
11
|
+
# .new
|
12
12
|
describe '.new' do
|
13
13
|
it 'instantiates an object' do
|
14
|
-
expect { subject }.
|
14
|
+
expect { subject }.not_to raise_error
|
15
15
|
end
|
16
16
|
|
17
17
|
context 'arguments' do
|
18
|
-
|
18
|
+
describe '#original_word' do
|
19
19
|
it 'sets the original_word attribute' do
|
20
20
|
expect(subject.original_word).to eq original_word
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
|
24
|
+
describe '#preprocessed_words' do
|
25
25
|
let(:preprocessed_words) { [:preprocessed_words] }
|
26
26
|
|
27
27
|
it 'sets the original_word attribute' do
|
@@ -31,7 +31,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
#preprocessed_word
|
34
|
+
# preprocessed_word
|
35
35
|
describe '#preprocessed_word' do
|
36
36
|
subject do
|
37
37
|
create(:preprocessed_words,
|
@@ -45,7 +45,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
-
|
48
|
+
# preprocessed?
|
49
49
|
describe '#preprocessed?' do
|
50
50
|
context 'when the word has been preprocessed' do
|
51
51
|
subject do
|
@@ -56,7 +56,7 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'returns the preprocessed word' do
|
59
|
-
expect(subject.preprocessed?).to
|
59
|
+
expect(subject.preprocessed?).to be true
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
@@ -68,10 +68,8 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWords, type: :module do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
it 'returns the preprocessed word' do
|
71
|
-
expect(subject.preprocessed?).to
|
71
|
+
expect(subject.preprocessed?).to be false
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
76
|
-
|
77
|
-
|
@@ -25,11 +25,11 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordsValidatable, type:
|
|
25
25
|
let(:original_word) { 'word' }
|
26
26
|
let(:with_word_processors) { 0 }
|
27
27
|
|
28
|
-
|
28
|
+
# .validate_prepreprocessed_words
|
29
29
|
describe '.validate_prepreprocessed_words' do
|
30
30
|
context 'when the object is valid' do
|
31
31
|
it 'does not raise an error' do
|
32
|
-
expect { PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.
|
32
|
+
expect { PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.not_to raise_error
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -38,19 +38,21 @@ RSpec.describe LittleWeasel::Preprocessors::PreprocessedWordsValidatable, type:
|
|
38
38
|
|
39
39
|
context 'when the object does not respond to #original_word' do
|
40
40
|
before { allow(preprocessed_words).to receive(:respond_to?).with(method).and_return(false) }
|
41
|
+
|
41
42
|
let(:method) { :original_word }
|
42
43
|
|
43
44
|
it 'raises an error' do
|
44
|
-
expect{ PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.to raise_error expected_error
|
45
|
+
expect { PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.to raise_error expected_error
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
48
49
|
context 'when the object does not respond to #preprocessed_words' do
|
49
50
|
before { allow(preprocessed_words).to receive(:respond_to?).with(method).and_return(false) }
|
51
|
+
|
50
52
|
let(:method) { :preprocessed_words }
|
51
53
|
|
52
54
|
it 'raises an error' do
|
53
|
-
expect{ PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.to raise_error expected_error
|
55
|
+
expect { PreprocessedWordsValidatable.validate_prepreprocessed_words(preprocessed_words: preprocessed_words) }.to raise_error expected_error
|
54
56
|
end
|
55
57
|
end
|
56
58
|
end
|