|
737 | 737 |
|
738 | 738 | context 'with no metadata' do
|
739 | 739 | it 'responds with nil when requesting a key' do
|
740 |
| - expect(scenario.metadata[:ctm_scenario_id]).to be_nil |
| 740 | + expect(scenario.metadata["ctm_scenario_id"]).to be_nil |
741 | 741 | end
|
742 | 742 | end
|
743 | 743 |
|
744 | 744 | context 'with empty metadata' do
|
745 | 745 | before { scenario.metadata = {} }
|
746 | 746 |
|
747 | 747 | it 'responds with nil when requesting a key' do
|
748 |
| - expect(scenario.metadata[:ctm_scenario_id]).to be_nil |
| 748 | + expect(scenario.metadata["ctm_scenario_id"]).to be_nil |
749 | 749 | end
|
750 | 750 | end
|
751 | 751 |
|
752 | 752 | context 'with metadata present' do
|
753 |
| - before { scenario.metadata = { ctm_scenario_id: 12_345, kittens: 'mew' } } |
| 753 | + before { scenario.metadata = { "ctm_scenario_id" => 12_345, "kittens" => "mew" } } |
754 | 754 |
|
755 | 755 | it 'stores numeric data' do
|
756 |
| - expect(scenario.metadata[:ctm_scenario_id]).to eq(12_345) |
| 756 | + expect(scenario.metadata["ctm_scenario_id"]).to eq(12_345) |
757 | 757 | end
|
758 | 758 |
|
759 | 759 | it 'stores string data' do
|
760 |
| - expect(scenario.metadata[:kittens]).to eq('mew') |
| 760 | + expect(scenario.metadata["kittens"]).to eq("mew") |
761 | 761 | end
|
762 | 762 |
|
763 |
| - it 'does not have metadata accesible by accessor' do |
| 763 | + it 'does not have metadata accessible by accessor' do |
764 | 764 | expect { scenario.kittens }.to raise_error(NoMethodError)
|
765 | 765 | end
|
766 | 766 | end
|
767 | 767 |
|
768 | 768 | context 'when setting metadata' do
|
769 |
| - it 'permits JSON object' do |
770 |
| - scenario.metadata = JSON.generate({}) |
771 |
| - expect(scenario.metadata).to eq({}) |
| 769 | + it 'permits a hash' do |
| 770 | + scenario.metadata = { "a" => 1 } |
| 771 | + expect(scenario.metadata).to eq({ "a" => 1 }) |
772 | 772 | end
|
773 | 773 |
|
774 | 774 | it 'permits a hash' do
|
|
781 | 781 | expect(scenario.metadata).to eq({})
|
782 | 782 | end
|
783 | 783 |
|
784 |
| - it 'permits empty string' do |
785 |
| - scenario.metadata = '' |
786 |
| - expect(scenario.metadata).to eq({}) |
787 |
| - end |
788 |
| - |
789 | 784 | it 'denies objects larger than 64Kb' do
|
790 |
| - scenario.metadata = (0..15_000).to_h { |i| [i, i] } |
791 |
| - |
| 785 | + scenario.metadata = (0..15_000).to_h { |i| [i.to_s, i] } |
792 | 786 | expect(scenario).not_to be_valid
|
793 | 787 | end
|
794 | 788 | end
|
795 | 789 |
|
796 | 790 | context 'when creating a clone of a scenario' do
|
797 |
| - before { scenario.metadata = { ctm_scenario_id: 12_345, kittens: 'mew' } } |
798 |
| - |
| 791 | + before { scenario.metadata = { "ctm_scenario_id" => 12_345, "kittens" => "mew" } } |
799 | 792 | let(:scenario_clone) { described_class.new(scenario_id: scenario.id) }
|
800 | 793 |
|
801 | 794 | it 'keeps the original metadata' do
|
|
0 commit comments