Skip to content

CHNL-14775: Add badge incrementing logic to extension + README #832

CHNL-14775: Add badge incrementing logic to extension + README

CHNL-14775: Add badge incrementing logic to extension + README #832

GitHub Actions / Xcode test results succeeded Dec 20, 2024 in 0s

Xcode test results

Testing workspace klaviyo-swift-sdk with scheme klaviyo-swift-sdk-Package

Summary

TotalSuccess PassedFailure FailedSkipped SkippedExpected Failure Expected Failure⏱️ Time
1381380004.31s

Test Summary

KlaviyoCoreTests

  • Device: iPhone 16 Pro, 18.1 (22B81)
  • SDK: Simulator - iOS 18.0, 18.0
TestTotalSuccessFailureSkippedExpected Failure
test-class ArchivalSystemTest11000
test-class ArchivalUtilsTests88000
test-class EncodableTests55000
test-class FileUtilsTests22000
test-class KlaviyoAPITests77000
test-class NetworkSessionTests33000

KlaviyoSwiftTests

  • Device: iPhone 16 Pro, 18.1 (22B81)
  • SDK: Simulator - iOS 18.0, 18.0
TestTotalSuccessFailureSkippedExpected Failure
test-class APIRequestErrorHandlingTests1515000
test-class AppLifeCycleEventsTests1111000
test-class EncodableTests11000
test-class KlaviyoEventTests11000
test-class KlaviyoModelsTest33000
test-class KlaviyoSDKTests1111000
test-class KlaviyoStateTests88000
test-class StateChangePublisherTests33000
test-class StateManagementEdgeCaseTests3030000
test-class StateManagementTests2727000

KlaviyoUITests

  • Device: iPhone 16 Pro, 18.1 (22B81)
  • SDK: Simulator - iOS 18.0, 18.0
TestTotalSuccessFailureSkippedExpected Failure
test-class KlaviyoUITests22000

Failure Failures

All tests passed 🎉


Code Coverage

Coverage Covered Executable
KlaviyoCoreTests 67.97 % 1165 1714
  CreateEventPayload.swift 98.46 % 64 65
  PushTokenPayload.swift 93.33 % 42 45
  ProfilePayload.swift 100.00 % 44 44
  NetworkSession.swift 64.10 % 50 78
  KlaviyoEnvironment.swift 43.12 % 47 109
  FileUtilsTests.swift 84.78 % 39 46
  PrivateMethods.swift 0.00 % 0 6
  ArchivalUtilsTests.swift 100.00 % 128 128
  AppContextInfo.swift 52.05 % 38 73
  UnregisterPushTokenPayload.swift 100.00 % 48 48
  KlaviyoAPI.swift 77.59 % 45 58
  ArchivalUtils.swift 100.00 % 46 46
  KlaviyoRequest.swift 94.74 % 36 38
  AppLifeCycleEvents.swift 100.00 % 75 75
  SDKRequestIterator.swift 0.00 % 0 143
  FileUtils.swift 80.56 % 29 36
  TestUtils.swift 65.28 % 47 72
  EncodableTests.swift 100.00 % 44 44
  LoggerClient.swift 21.43 % 3 14
  PushEnablement.swift 100.00 % 14 14
  CreateProfilePayload.swift 100.00 % 3 3
  ReachabilitySwift.swift 13.00 % 29 223
  NetworkSessionTests.swift 100.00 % 22 22
  KlaviyoEndpoint.swift 86.49 % 32 37
  PushBackground.swift 100.00 % 12 12
  SimpleMockURLProtocol.swift 100.00 % 12 12
  KlaviyoAPITests.swift 96.86 % 216 223
KlaviyoSwift 68.68 % 1949 2838
  Store.swift 48.71 % 151 310
  Misc.swift 33.10 % 47 142
  Cancellation.swift 86.18 % 212 246
  KlaviyoSwiftEnvironment.swift 41.54 % 27 65
  ConcurrencySupport.swift 6.06 % 8 132
  LifecycleEventsExtension.swift 100.00 % 12 12
  KlaviyoState.swift 76.53 % 300 392
  Event.swift 100.00 % 43 43
  StateChangePublisher.swift 43.18 % 19 44
  Profile.swift 100.00 % 28 28
  ProfileAPIExtension.swift 100.00 % 32 32
  Publisher.swift 46.15 % 66 143
  StateManagement.swift 94.35 % 568 602
  Klaviyo.swift 81.60 % 102 125
  Effect.swift 39.58 % 112 283
  Create.swift 90.21 % 129 143
  APIRequestErrorHandling.swift 96.88 % 93 96
KlaviyoSwiftExtension 0.00 % 0 0
KlaviyoSwiftTests 73.30 % 6003 8190
  KlaviyoEnvironment.swift 43.12 % 47 109
  NetworkSession.swift 64.10 % 50 78
  FileUtils.swift 80.56 % 29 36
  LoggerClient.swift 21.43 % 3 14
  SDKRequestIterator.swift 0.00 % 0 143
  KlaviyoTestUtils.swift 85.71 % 96 112
  Effect.swift 39.58 % 112 283
  Create.swift 90.21 % 129 143
  KlaviyoState.swift 76.53 % 300 392
  EventTests.swift 100.00 % 6 6
  Klaviyo.swift 81.60 % 102 125
  Event.swift 100.00 % 43 43
  TestData.swift 88.46 % 69 78
  Cancellation.swift 86.18 % 212 246
  ProfilePayload.swift 100.00 % 44 44
  KlaviyoStateTests.swift 95.71 % 201 210
  Misc.swift 33.10 % 47 142
  APIRequestErrorHandlingTests.swift 100.00 % 402 402
  APIRequestErrorHandling.swift 96.88 % 93 96
  StateChangePublisherTests.swift 99.18 % 242 244
  ArchivalUtils.swift 100.00 % 46 46
  PushEnablement.swift 100.00 % 14 14
  EncodableTests.swift 100.00 % 26 26
  Store.swift 48.71 % 151 310
  PushBackground.swift 100.00 % 12 12
  ProfileAPIExtension.swift 100.00 % 32 32
  StateManagementEdgeCaseTests.swift 99.25 % 531 535
  Publisher.swift 46.15 % 66 143
  StateManagementTests.swift 99.89 % 921 922
  CreateEventPayload.swift 98.46 % 64 65
  PrivateMethods.swift 0.00 % 0 6
  StateManagement.swift 94.35 % 568 602
  Profile.swift 100.00 % 28 28
  TestStore.swift 34.17 % 381 1115
  CreateProfilePayload.swift 100.00 % 3 3
  PushTokenPayload.swift 93.33 % 42 45
  KlaviyoEndpoint.swift 86.49 % 32 37
  KlaviyoRequest.swift 94.74 % 36 38
  LifecycleEventsExtension.swift 100.00 % 12 12
  KlaviyoSDKTests.swift 98.01 % 148 151
  AppContextInfo.swift 52.05 % 38 73
  KlaviyoModelsTest.swift 100.00 % 132 132
  AppLifeCycleEvents.swift 100.00 % 75 75
  ReachabilitySwift.swift 13.00 % 29 223
  KlaviyoAPI.swift 77.59 % 45 58
  UnregisterPushTokenPayload.swift 100.00 % 48 48
  StateChangePublisher.swift 43.18 % 19 44
  KlaviyoSwiftEnvironment.swift 41.54 % 27 65
  AppLifeCycleEventsTests.swift 96.03 % 242 252
  ConcurrencySupport.swift 6.06 % 8 132
KlaviyoUI 0.00 % 0 0
KlaviyoUITests 65.26 % 2628 4027
  SDKRequestIterator.swift 0.00 % 0 143
  ReachabilitySwift.swift 13.00 % 29 223
  AppLifeCycleEvents.swift 100.00 % 75 75
  KlaviyoAPI.swift 77.59 % 45 58
  Cancellation.swift 86.18 % 212 246
  AppContextInfo.swift 52.05 % 38 73
  KlaviyoSwiftEnvironment.swift 41.54 % 27 65
  KlaviyoEndpoint.swift 86.49 % 32 37
  KlaviyoRequest.swift 94.74 % 36 38
  Event.swift 100.00 % 43 43
  ProfileAPIExtension.swift 100.00 % 32 32
  KlaviyoState.swift 76.53 % 300 392
  Publisher.swift 46.15 % 66 143
  Effect.swift 39.58 % 112 283
  CreateEventPayload.swift 98.46 % 64 65
  ConcurrencySupport.swift 6.06 % 8 132
  Create.swift 90.21 % 129 143
  LoggerClient.swift 21.43 % 3 14
  KlaviyoUITests.swift 100.00 % 22 22
  Store.swift 48.71 % 151 310
  PushTokenPayload.swift 93.33 % 42 45
  PushBackground.swift 100.00 % 12 12
  APIRequestErrorHandling.swift 96.88 % 93 96
  CreateProfilePayload.swift 100.00 % 3 3
  LifecycleEventsExtension.swift 100.00 % 12 12
  PrivateMethods.swift 0.00 % 0 6
  ArchivalUtils.swift 100.00 % 46 46
  PushEnablement.swift 100.00 % 14 14
  KlaviyoEnvironment.swift 43.12 % 47 109
  StateManagement.swift 94.35 % 568 602
  Profile.swift 100.00 % 28 28
  Misc.swift 33.10 % 47 142
  NetworkSession.swift 64.10 % 50 78
  FileUtils.swift 80.56 % 29 36
  StateChangePublisher.swift 43.18 % 19 44
  ProfilePayload.swift 100.00 % 44 44
  UnregisterPushTokenPayload.swift 100.00 % 48 48
  Klaviyo.swift 81.60 % 102 125
Total 70.04 % 11745 16769

Details

Test Details

KlaviyoCoreTestsback

ArchivalSystemTest back

SuccessFailureSkippedExpected Failure⏱️
1 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testArchiveUnarchive()

ArchivalUtilsTests back

SuccessFailureSkippedExpected Failure⏱️
8 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testArchiveFails()
Successtest-method testArchiveUnarchive()
Successtest-method testArchiveWriteFails()
Successtest-method testUnarchive()
Successtest-method testUnarchiveInvalidData()
Successtest-method testUnarchiveUnableToRemoveFile()
Successtest-method testUnarchiveUnarchiveFails()
Successtest-method testUnarchiveWhereFileDoesNotExist()

EncodableTests back

SuccessFailureSkippedExpected Failure⏱️
5 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testEventPayload()
Successtest-method testKlaviyoRequest()
Successtest-method testProfilePayload()
Successtest-method testTokenPayload()
Successtest-method testUnregisterTokenPayload()

FileUtilsTests back

SuccessFailureSkippedExpected Failure⏱️
2 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testFilePathForData()
Successtest-method testRemoveItemWithError()

KlaviyoAPITests back

SuccessFailureSkippedExpected Failure⏱️
7 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testEncodingError()
Successtest-method testInvalidStatusCode()
Successtest-method testInvalidURL()
Successtest-method testNetworkError()
Successtest-method testSuccessfulResponseWithEvent()
Successtest-method testSuccessfulResponseWithProfile()
Successtest-method testSuccessfulResponseWithStoreToken()

NetworkSessionTests back

SuccessFailureSkippedExpected Failure⏱️
3 (100%)0 (0%)0 (0%)0 (0%)0.01s
Successtest-method testCreateEmphemeralSesionHeaders()
Successtest-method testDefaultUserAgent()
Successtest-method testSessionDataTask()

KlaviyoSwiftTestsback

APIRequestErrorHandlingTests back

SuccessFailureSkippedExpected Failure⏱️
15 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testMissingOrInvalidResponse()
Successtest-method testRateLimitErrorWithExistingBackoffRetry()
Successtest-method testRateLimitErrorWithExistingRetry()
Successtest-method testRetryWithRetryAfter()
Successtest-method testSendRequestDataEncodingError()
Successtest-method testSendRequestFailureIncrementsRetryCount()
Successtest-method testSendRequestFailureWithBackoff()
Successtest-method testSendRequestHttpFailureDequesRequest()
Successtest-method testSendRequestHttpFailureForEmailResetsStateAndDequesRequest()
Successtest-method testSendRequestHttpFailureForPhoneNumberResetsStateAndDequesRequest()
Successtest-method testSendRequestInternalError()
Successtest-method testSendRequestInternalRequestError()
Successtest-method testSendRequestInvalidData()
Successtest-method testSendRequestMaxRetries()
Successtest-method testSendRequestUnknownError()

AppLifeCycleEventsTests back

SuccessFailureSkippedExpected Failure⏱️
11 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testAppBackgroundGetsStopAction()
Successtest-method testAppBackgroundStopsReachability()
Successtest-method testAppBecomeActiveGetsStartAction()
Successtest-method testAppBecomesActiveStartsReachibility()
Successtest-method testAppTerminateGetsStopAction()
Successtest-method testAppTerminateStopsReachability()
Successtest-method testReachabilityNotificationStatusHandled()
Successtest-method testReachabilityStartFailureIsHandled()
Successtest-method testReachabilityStatusNilThenNotNil()
Successtest-method testReachaibilityNotificationGetsRightAction()
Successtest-method testStartReachabilityCalledOnSubscription()

EncodableTests back

SuccessFailureSkippedExpected Failure⏱️
1 (100%)0 (0%)0 (0%)0 (0%)0.01s
Successtest-method testKlaviyoState()

KlaviyoEventTests back

SuccessFailureSkippedExpected Failure⏱️
1 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testOpenedPushEvent()

KlaviyoModelsTest back

SuccessFailureSkippedExpected Failure⏱️
3 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testEmptyStringIdsConvertToNil()
Successtest-method testProfileModelConvertsToAPIModel()
Successtest-method testProfileWithNoIdsModelConvertsToAPIModel()

KlaviyoSDKTests back

SuccessFailureSkippedExpected Failure⏱️
11 (100%)0 (0%)0 (0%)0 (0%)3.49s
Successtest-method testCreateEvent()
Successtest-method testCreateEventFromDocumentation()
Successtest-method testHandlePushNotification()
Successtest-method testInitializeSDk()
Successtest-method testKlaviyoSDKInit()
Successtest-method testPropertyGetters()
Successtest-method testSetExternalId()
Successtest-method testSetFirstName()
Successtest-method testSetProfile()
Successtest-method testSetPushToken()
Successtest-method testUnhandlePushNotification()

KlaviyoStateTests back

SuccessFailureSkippedExpected Failure⏱️
8 (100%)0 (0%)0 (0%)0 (0%)0.01s
Successtest-method testBackgroundStates()
Successtest-method testFullKlaviyoStateEncodingDecodingIsEqual()
Successtest-method testLoadNewKlaviyoState()
Successtest-method testPushEnablementStates()
Successtest-method testSaveKlaviyoStateWithMissingApiKeyLogsError()
Successtest-method testStateFileExistsInvalidData()
Successtest-method testStateFileExistsInvalidJSON()
Successtest-method testValidStateFileExists()

StateChangePublisherTests back

SuccessFailureSkippedExpected Failure⏱️
3 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testQuickStateUpdatesTriggerOnlyOneSaves()
Successtest-method testStateChangeDuplicateAreRemoved()
Successtest-method testStateChangePublisher()

StateManagementEdgeCaseTests back

SuccessFailureSkippedExpected Failure⏱️
30 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testCompleteInitializationWhileAlreadyInitialized()
Successtest-method testCompleteInitializationWithExistingIdentifiers()
Successtest-method testDefaultBadgeClearingOff()
Successtest-method testDefaultBadgeClearingOn()
Successtest-method testEnqueueNonOpenedPushEventUninitializedDoesNotAddToPendingRequest()
Successtest-method testInitializeAfterInitialized()
Successtest-method testInitializeWhileInitializing()
Successtest-method testNetworkStatusChangedUninitialized()
Successtest-method testOpenedPushEventUninitializedAddsToPendingRequests()
Successtest-method testSendRequestBeforeInitialization()
Successtest-method testSetEmailMissingAnonymousIdStillSetsEmail()
Successtest-method testSetEmailUninitializedDoesNotAddToPendingRequest()
Successtest-method testSetEmailWithWhiteSpace()
Successtest-method testSetEmptyEmail()
Successtest-method testSetEmptyExternalId()
Successtest-method testSetEmptyPhoneNumber()
Successtest-method testSetExternalIdMissingAnonymousIdStillSetsExternalId()
Successtest-method testSetExternalIdUninitializedDoesNotAddToPendingRequest()
Successtest-method testSetExternalIdWithWhiteSpaces()
Successtest-method testSetPhoneNumberMissingApiKeyStillSetsPhoneNumber()
Successtest-method testSetPhoneNumberUninitializedDoesNotAddToPendingRequest()
Successtest-method testSetPhoneNumberWithWhiteSpaces()
Successtest-method testSetProfileUnitialized()
Successtest-method testSetProfileWithEmptyStringIdentifiers()
Successtest-method testSetPushTokenUninitializedDoesNotAddToPendingRequest()
Successtest-method testSetPushTokenWithMissingAnonymousId()
Successtest-method testStartUninitialized()
Successtest-method testStopInitializing()
Successtest-method testStopUninitialized()
Successtest-method testTokenRequestMissingApiKey()

StateManagementTests back

SuccessFailureSkippedExpected Failure⏱️
27 (100%)0 (0%)0 (0%)0 (0%)0.00s
Successtest-method testEmptyQueueDoesNotFlush()
Successtest-method testEnqueueEvents()
Successtest-method testEnqueueEventWhenInitilizingSendsEvent()
Successtest-method testFetchFormsDecodingError()
Successtest-method testFetchForms()
Successtest-method testFlushQueueDuringExponentialBackoff()
Successtest-method testFlushQueueExponentialBackoffGoesToSize()
Successtest-method testFlushQueueWithMultipleRequests()
Successtest-method testFlushUninitializedQueueDoesNotFlush()
Successtest-method testFlushWithPendingProfile()
Successtest-method testInitializeSubscribesToAppropriatePublishers()
Successtest-method testInitialize()
Successtest-method testNetworkConnectivityChanges()
Successtest-method testQueueThatIsFlushingDoesNotFlush()
Successtest-method testSendRequestWhenNotFlushing()
Successtest-method testSendRequestWithNoRequestsInFlight()
Successtest-method testSetEmail()
Successtest-method testSetExternalId()
Successtest-method testSetPhoneNumber()
Successtest-method testSetProfileWithAllProfileIdentifiersAndProperties()
Successtest-method testSetProfileWithExistingProperties()
Successtest-method testSetPushEnablementChanged()
Successtest-method testSetPushEnablementPushTokenIsNil()
Successtest-method testSetPushTokenEnablementChanged()
Successtest-method testSetPushTokenMultipleTimes()