for _, m := range initialMigrations { m.SetRawSQLDB(rawSQLDB) m.SetDBFlavor(flavor) m.SetClock(fakeClock) err := m.Up(logger) Expect(err).NotTo(HaveOccurred()) } // Can't do this in the Describe BeforeEach // as the test on line 37 will cause ginkgo to panic mig.SetRawSQLDB(rawSQLDB) mig.SetDBFlavor(flavor) }) JustBeforeEach(func() { migErr = mig.Up(logger) }) It("does not error out", func() { Expect(migErr).NotTo(HaveOccurred()) }) It("should add a placement_tags column to desired lrps", func() { placementTags := []string{"tag-1"} jsonData, err := json.Marshal(placementTags) Expect(err).NotTo(HaveOccurred()) _, err = rawSQLDB.Exec( sqldb.RebindForFlavor( `INSERT INTO desired_lrps
0, ) Expect(err).NotTo(HaveOccurred()) // Tasks expectedTask = model_helpers.NewValidTask("task-guid") jsonValue, err = json.Marshal(expectedTask) Expect(err).NotTo(HaveOccurred()) _, err = storeClient.Set(etcd.TaskSchemaPath(expectedTask), jsonValue, 0) Expect(err).NotTo(HaveOccurred()) }) JustBeforeEach(func() { migration.SetStoreClient(storeClient) migration.SetCryptor(cryptor) migrationErr = migration.Up(logger) }) var validateConversionToProto = func(node *goetcd.Node, actual, expected format.Versioner) { value := node.Value Expect(value[:2]).To(BeEquivalentTo(format.BASE64[:])) payload, err := base64.StdEncoding.DecodeString(string(value[2:])) Expect(err).NotTo(HaveOccurred()) Expect(payload[0]).To(BeEquivalentTo(format.PROTO)) serializer.Unmarshal(logger, []byte(value), actual) Expect(actual).To(Equal(expected)) } It("converts all data stored in the etcd store to base 64 protobuf", func() { Expect(migrationErr).NotTo(HaveOccurred())