}) Context("when given a simple driverspath", func() { Context("with hetergeneous driver specifications", func() { BeforeEach(func() { err := voldriver.WriteDriverSpec(logger, defaultPluginsDirectory, driverName, "json", []byte("{\"Addr\":\"http://0.0.0.0:8080\"}")) Expect(err).NotTo(HaveOccurred()) err = voldriver.WriteDriverSpec(logger, defaultPluginsDirectory, driverName, "spec", []byte("http://0.0.0.0:9090")) Expect(err).NotTo(HaveOccurred()) }) It("should preferentially select spec over json specification", func() { drivers, err := syncer.Discover(logger) Expect(err).ToNot(HaveOccurred()) Expect(len(drivers)).To(Equal(1)) _, _, _, specFileName := fakeDriverFactory.DriverArgsForCall(0) Expect(specFileName).To(Equal(driverName + ".spec")) }) }) }) Context("when given a compound driverspath", func() { BeforeEach(func() { syncer = vollocal.NewDriverSyncerWithDriverFactory(logger, registry, []string{defaultPluginsDirectory, secondPluginsDirectory}, scanInterval, fakeClock, fakeDriverFactory) }) Context("with a single driver", func() { BeforeEach(func() { err := voldriver.WriteDriverSpec(logger, secondPluginsDirectory, driverName, "spec", []byte("http://0.0.0.0:8080")) Expect(err).NotTo(HaveOccurred()) })