Skip to content

Commit 1cfbaac

Browse files
committed
Add failing test for bug where annotations incorrectly escape backslashes
1 parent 5d01c41 commit 1cfbaac

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

Diff for: spec/lib/annotate/annotate_models_spec.rb

+59
Original file line numberDiff line numberDiff line change
@@ -2922,6 +2922,65 @@ def annotate_one_file(options = {})
29222922
expect(File.read(@model_file_name)).to eq("#{@schema_info}#{@file_content}")
29232923
end
29242924
end
2925+
2926+
context 'of an index' do
2927+
before do
2928+
klass = mock_class(:users,
2929+
:id,
2930+
[
2931+
mock_column(:id, :integer),
2932+
mock_column(:foreign_thing_id, :integer)
2933+
],
2934+
[
2935+
mock_index('index_rails_02e851e3b7', columns: ['id']),
2936+
mock_index('index_rails_02e851e3b8', columns: ['foreign_thing_id'])
2937+
])
2938+
@schema_info = AnnotateModels.get_schema_info(klass, '== Schema Info', show_indexes: true)
2939+
annotate_one_file
2940+
end
2941+
2942+
it 'should update index' do
2943+
klass = mock_class(:users,
2944+
:id,
2945+
[
2946+
mock_column(:id, :integer),
2947+
mock_column(:foreign_thing_id, :integer),
2948+
mock_column(:another_column, :integer)
2949+
],
2950+
[
2951+
mock_index('index_rails_02e851e3b7', columns: ['id']),
2952+
mock_index('index_rails_02e851e3b8', columns: ['foreign_thing_id']),
2953+
mock_index('index_rails_02e851e3b9',
2954+
columns: ['another_column'],
2955+
where: "another_column IS NOT NULL"
2956+
)
2957+
])
2958+
@schema_info = AnnotateModels.get_schema_info(klass, '== Schema Info', show_indexes: true)
2959+
annotate_one_file
2960+
expect(File.read(@model_file_name)).to eq("#{@schema_info}#{@file_content}")
2961+
end
2962+
2963+
it 'should update index without escaping backslashes' do
2964+
klass = mock_class(:users,
2965+
:id,
2966+
[
2967+
mock_column(:id, :integer),
2968+
mock_column(:foreign_thing_id, :integer),
2969+
mock_column(:another_column, :text)
2970+
],
2971+
[
2972+
mock_index('index_rails_02e851e3b7', columns: ['id']),
2973+
mock_index('index_rails_02e851e3b8', columns: ['foreign_thing_id']),
2974+
mock_index('index_rails_02e851e3b9',
2975+
columns: ['another_column'],
2976+
where: "another_column LIKE '\\\\%'"
2977+
)
2978+
])
2979+
@schema_info = AnnotateModels.get_schema_info(klass, '== Schema Info', show_indexes: true)
2980+
annotate_one_file
2981+
expect(File.read(@model_file_name)).to eq("#{@schema_info}#{@file_content}")
2982+
end
2983+
end
29252984
end
29262985

29272986
describe 'with existing annotation => :before' do

0 commit comments

Comments
 (0)