Context("when symlink does not exist", func() { It("returns an error", func() { _, _, err := pathResolver.GetRealDevicePath(diskSettings) Expect(err).To(HaveOccurred()) }) }) Context("when no matching device is found the first time", func() { Context("when the timeout has not expired", func() { BeforeEach(func() { fs.GlobStub = func(pattern string) ([]string, error) { err := fs.MkdirAll("fake-device-path", os.FileMode(0750)) Expect(err).ToNot(HaveOccurred()) fs.SetGlob("/dev/disk/by-id/*fake-disk-id-include", []string{"fake-device-path"}) fs.GlobStub = nil return nil, errors.New("new error") } }) It("returns the real path", func() { path, timeout, err := pathResolver.GetRealDevicePath(diskSettings) Expect(err).ToNot(HaveOccurred()) Expect(path).To(Equal("fake-device-path")) Expect(timeout).To(BeFalse()) }) }) })
}) Context("when no matching device is found the first time", func() { Context("when the timeout has not expired", func() { BeforeEach(func() { err := fs.MkdirAll("fake-device-path", os.FileMode(0750)) Expect(err).ToNot(HaveOccurred()) err = fs.Symlink("fake-device-path", "/dev/disk/by-id/virtio-fake-disk-id-include") Expect(err).ToNot(HaveOccurred()) fs.GlobStub = func(pattern string) ([]string, error) { fs.SetGlob("/dev/disk/by-id/*fake-disk-id-include", []string{ "/dev/disk/by-id/virtio-fake-disk-id-include", }) fs.GlobStub = nil return nil, errors.New("new error") } }) It("returns the real path", func() { path, timeout, err := pathResolver.GetRealDevicePath(diskSettings) Expect(err).ToNot(HaveOccurred()) Expect(path).To(Equal("fake-device-path")) Expect(timeout).To(BeFalse()) }) }) })