                     expect(update?.newValue).toEventually(beNil())
                 }
 
+                #if canImport(Combine)
+                if #available(OSX 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) {
+                    then("receives initial update with publishers") {
+                        self.keyStore.testOptionalValue = DefaultsKey<Serializable?>("test")
+
+                        var update: Serializable? = self.defaultValue
+                        let cancellable = defaults.publisher(for: \.testOptionalValue, options: [.initial, .old, .new])
+                            .sink { value in
+                                update = value
+                            }
+
+                        expect(update).toEventually(beNil())
+                    }
+                }
+                #endif
+
                 then("receives nil update") {
                     let key = DefaultsKey<Serializable?>("test")
 

                    expect(update?.newValue).toEventually(equal(self.defaultValue))
                }

                then("remove observer on dispose") {
                    let key = DefaultsKey<Serializable>("test", defaultValue: self.defaultValue)


                    expect(update?.newValue).toEventually(equal(self.defaultValue))
                }

                #if canImport(Combine)
                if #available(OSX 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) {
                    then("receives initial update with publishers") {
                        self.keyStore.testOptionalValue = DefaultsKey<Serializable?>("test", defaultValue: self.defaultValue)

                        var update: Serializable?
                        let cancellable = defaults.publisher(for: \.testOptionalValue, options: [.initial, .old, .new])
                            .sink { value in
                                update = value
                            }

                        expect(update).toEventually(equal(self.defaultValue))
                    }
                }
                #endif

                then("receives nil update") {
                    let key = DefaultsKey<Serializable?>("test", defaultValue: self.defaultValue)

