cookbooks/aws-parallelcluster-slurm/spec/unit/libraries/update_spec.rb (55 lines of code) (raw):

require 'spec_helper' describe "aws-parallelcluster-slurm:libraries:are_mount_or_unmount_required" do CHANGE_SET_PATH = "/CHANGE_SET_PATH".freeze let(:node) do { "cluster" => { "change_set_path" => CHANGE_SET_PATH }, } end shared_examples "the correct method" do |changeset, expected_result| it "returns #{expected_result}" do if changeset.nil? allow(File).to receive(:exist?).with(CHANGE_SET_PATH).and_return(false) allow(File).to receive(:read).with(CHANGE_SET_PATH).and_call_original else allow(File).to receive(:exist?).with(CHANGE_SET_PATH).and_return(true) allow(File).to receive(:read).with(CHANGE_SET_PATH).and_return(JSON.dump(changeset)) end result = are_mount_or_unmount_required? expect(result).to eq(expected_result) end end context "when changeset does not exist" do changeset = nil include_examples "the correct method", changeset, false end context "when changeset is empty" do changeset = { "changeSet" => [], } include_examples "the correct method", changeset, false end context "when changeset does not contain any change with SHARED_STORAGE_UPDATE_POLICY" do changeset = { "changeSet" => [ { updatePolicy: "NOT_SHARED_STORAGE_UPDATE_POLICY", }, ], } include_examples "the correct method", changeset, false end context "when changeset contains at least a change with SHARED_STORAGE_UPDATE_POLICY" do changeset = { "changeSet" => [ { updatePolicy: "SHARED_STORAGE_UPDATE_POLICY", }, { updatePolicy: "NOT_SHARED_STORAGE_UPDATE_POLICY", }, ], } include_examples "the correct method", changeset, true end end