diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/components/storage_spec.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/spec/components/storage_spec.rb b/spec/components/storage_spec.rb new file mode 100644 index 0000000..99131dd --- /dev/null +++ b/spec/components/storage_spec.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +require_relative '../../components/storage' + +RSpec.describe NanoBot::Components::Storage do + it 'symbolizes keys' do + expect( + described_class.cartridges_path( + components: { home: '/home/aqua', ENV: {}, directory?: ->(_) { true } } + ) + ).to eq('/home/aqua/.local/share/nano-bots/cartridges') + + expect( + described_class.cartridges_path( + components: { + home: '/home/aqua', + ENV: { 'NANO_BOTS_CARTRIDGES_DIRECTORY' => '/home/aqua/my-cartridges' }, + directory?: ->(_) { true } + } + ) + ).to eq('/home/aqua/my-cartridges') + + expect( + described_class.cartridges_path( + components: { + home: '/home/aqua', + ENV: { + 'NANO_BOTS_CARTRIDGES_DIRECTORY' => '/home/aqua/my-cartridges', + 'NANO_BOTS_CARTRIDGES_PATH' => '/home/aqua/lime/my-cartridges' + }, + directory?: ->(_) { true } + } + ) + ).to eq('/home/aqua/lime/my-cartridges:/home/aqua/my-cartridges') + + expect( + described_class.cartridges_path( + components: { + home: '/home/aqua', + ENV: { + 'NANO_BOTS_CARTRIDGES_DIRECTORY' => '/home/aqua/my-cartridges', + 'NANO_BOTS_CARTRIDGES_PATH' => '/home/aqua/lime/my-cartridges:/home/aqua/ivory/my-cartridges' + }, + directory?: lambda do |path| + { '/home/aqua/my-cartridges' => true, + '/home/aqua/lime/my-cartridge' => false, + '/home/aqua/ivory/my-cartridges' => true }[path] + end + } + ) + ).to eq('/home/aqua/ivory/my-cartridges:/home/aqua/my-cartridges') + end +end |