Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Queue a config event even if the last modified header is old #265

Merged
merged 1 commit into from
Aug 14, 2024

Queue a config event even if the last modified header is old

cde8191
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

chore: Queue a config event even if the last modified header is old #265

Queue a config event even if the last modified header is old
cde8191
Select commit
Loading
Failed to load commit list.
GitHub Actions / Test Report succeeded Aug 14, 2024 in 0s

145 passed, 0 failed and 6 skipped

Tests passed successfully

✅ jest-junit.xml

151 tests were completed in 60s with 145 passed, 0 failed and 6 skipped.

Test suite Passed Failed Skipped Time
harness/features/allFeatures.cloud.test.ts 2✅ 1⚪ 168ms
harness/features/allFeatures.local.test.ts 3✅ 183ms
harness/features/allVariables.cloud.test.ts 5✅ 7s
harness/features/allVariables.local.test.ts 2✅ 3s
harness/features/bootstrapping.test.ts 2⚪ 164ms
harness/features/clientCustomData.test.ts 2✅ 1s
harness/features/initialize.cloud.test.ts 3✅ 138ms
harness/features/initialize.local.test.ts 12✅ 1⚪ 13s
harness/features/multithreading.local.test.ts 5✅ 5s
harness/features/track.cloud.test.ts 4✅ 443ms
harness/features/track.local.test.ts 4✅ 6s
harness/features/variable.cloud.test.ts 34✅ 2⚪ 57s
harness/features/variable.local.test.ts 66✅ 47s
harness/types/capabilities.test.ts 3✅ 81ms

✅ harness/features/allFeatures.cloud.test.ts

allFeatures Tests - Cloud › Go
  ✅ should return all features without edgeDB
  ✅ should return all features with edgeDB
  ⚪ should throw if features request fails on invalid sdk key

✅ harness/features/allFeatures.local.test.ts

allFeatures Tests - Local › uninitialized client
  ✅ should return empty object if client is uninitialized
allFeatures Tests - Local › initialized client
  ✅ should return all features for user without custom data
  ✅ should return all features for user with custom data

✅ harness/features/allVariables.cloud.test.ts

allVariables Tests - Cloud › Go
  ✅ should return an empty object if variables request fails
  ✅ should throw if variables request fails on user error
  ✅ should return a variable map
  ✅ should make a request to the variables endpoint with edgeDB param to false
  ✅ should make a request to the variables endpoint with edgeDB param to true

✅ harness/features/allVariables.local.test.ts

allVariables Tests - Local
  ✅ should return an empty object if client is not initialized
  ✅ should return a variable map for a bucketed user

✅ harness/features/bootstrapping.test.ts

Bootstrapping Tests › Go › not enabled client
  ⚪ throws an error when trying to get bootstrap config if not enabled
Bootstrapping Tests › Go › initialized client
  ⚪ should return a client bootstrapped config

✅ harness/features/clientCustomData.test.ts

Client Custom Data Tests › Go
  ✅ should set client custom data and use it for segmentation
  ✅ should do nothing when client has not initialized

✅ harness/features/initialize.cloud.test.ts

Client Initialize Tests - Cloud › Go
  ✅ should throw an exception and return no location if invalid SDK token is sent
  ✅ should throw an exception and return no location if no SDK token is sent
  ✅ should return client object location if SDK token is correct

✅ harness/features/initialize.local.test.ts

Initialize Tests - Local
  ✅ should error when SDK key is missing
  ✅ should error when SDK key is invalid
  ✅ initializes correctly on valid data
  ✅ calls initialize promise/callback when config is successfully retrieved
  ✅ calls initialize promise/callback when config fails to be retrieved
  ✅ defaults variable when config fails to be retrieved, and then recovers
  ⚪ stops the polling interval when the sdk key is invalid and cdn responds 403, throws error
  ✅ fetches config again after 3 seconds when config polling interval is overriden
  ✅ uses the same config if the etag matches
  ✅ uses the same config if the refetch fails, after retrying once
  ✅ uses the same config if the response is invalid JSON
  ✅ uses the same config if the response is valid JSON but invalid data
  ✅ uses the new config when etag changes, and flushes existing events

✅ harness/features/multithreading.local.test.ts

Multithreading Tests › Go › initialized client
  ✅ should return variable if SDK returns object matching default type
  ✅ should aggregate events across threads
  ✅ should retry events across threads
Multithreading Tests › Go › initialized client › Go
  ✅ should set client custom data and use it for segmentation
Multithreading Tests › Go › uninitialized client
  ✅ should return default value if client is uninitialized, log event

✅ harness/features/track.cloud.test.ts

Track Tests - Cloud › Go
  ✅ should complain if event type not set
  ✅ should call events API to track event
  ✅ should retry events API on failed request
  ✅ should throw if track request fails on invalid sdk key

✅ harness/features/track.local.test.ts

Track Tests - Local › Expect no events sent
  ✅ should not send an event if the event type not set
Track Tests - Local › Expect events sent
  ✅ should call events API to track event
  ✅ should call events API to track 2 events
  ✅ should retry events API call to track 2 events and check interval of events is in specified window

✅ harness/features/variable.cloud.test.ts

Variable Tests - Cloud › Go
  ✅ will throw error variable called with invalid key
  ✅ will throw error variableValue called with invalid key
  ⚪ will throw error if variable called with invalid sdk key
  ⚪ will throw error if variableValue called with invalid sdk key
  ✅ will throw error variable called with invalid default value
  ✅ will throw error variableValue called with invalid default value
  ✅ should call variable API without edgeDB option
  ✅ should call variableValue API without edgeDB option
  ✅ should call variable API with edgeDB option
  ✅ should call variableValue API with edgeDB option
  ✅ should return default if mock server returns variable mismatching default value type
  ✅ should return default if mock server returns variableValue mismatching default value type
Variable Tests - Cloud › Go › Variable string tests
  ✅ should return default string variable if mock server returns undefined
  ✅ should return default string variableValue if mock server returns undefined
  ✅ should return string variable if mock server returns                 proper variable matching default value type
  ✅ should return string variableValue if mock server returns                 proper variable matching default value type
  ✅ should return defaulted string variable if mock server returns an internal error,                 after retrying 5 times
  ✅ should return defaulted string variableValue if mock server returns an internal error,                 after retrying 5 times
Variable Tests - Cloud › Go › Variable number tests
  ✅ should return default number variable if mock server returns undefined
  ✅ should return default number variableValue if mock server returns undefined
  ✅ should return number variable if mock server returns                 proper variable matching default value type
  ✅ should return number variableValue if mock server returns                 proper variable matching default value type
  ✅ should return defaulted number variable if mock server returns an internal error,                 after retrying 5 times
  ✅ should return defaulted number variableValue if mock server returns an internal error,                 after retrying 5 times
Variable Tests - Cloud › Go › Variable boolean tests
  ✅ should return default boolean variable if mock server returns undefined
  ✅ should return default boolean variableValue if mock server returns undefined
  ✅ should return boolean variable if mock server returns                 proper variable matching default value type
  ✅ should return boolean variableValue if mock server returns                 proper variable matching default value type
  ✅ should return defaulted boolean variable if mock server returns an internal error,                 after retrying 5 times
  ✅ should return defaulted boolean variableValue if mock server returns an internal error,                 after retrying 5 times
Variable Tests - Cloud › Go › Variable JSON tests
  ✅ should return default JSON variable if mock server returns undefined
  ✅ should return default JSON variableValue if mock server returns undefined
  ✅ should return JSON variable if mock server returns                 proper variable matching default value type
  ✅ should return JSON variableValue if mock server returns                 proper variable matching default value type
  ✅ should return defaulted JSON variable if mock server returns an internal error,                 after retrying 5 times
  ✅ should return defaulted JSON variableValue if mock server returns an internal error,                 after retrying 5 times

✅ harness/features/variable.local.test.ts

Variable Tests - Local › initialized client › Variable string tests
  ✅ should return variable if mock server returns object matching default type
  ✅ should return variableValue if mock server returns object matching default type
  ✅ should return default value if default type doesn't match variable type
  ✅ should return default value if default type doesn't match variableValue type
  ✅ should return default value if user is not bucketed into variable
  ✅ should return default value if user is not bucketed into variableValue
  ✅ should return default value if variable doesn't exist
  ✅ should return default value if variableValue doesn't exist
  ✅ should aggregate aggVariableDefaulted events for variable
  ✅ should aggregate aggVariableDefaulted events for variableValue
  ✅ should aggregate aggVariableEvaluated events for variable
  ✅ should aggregate aggVariableEvaluated events for variableValue
Variable Tests - Local › initialized client › Variable number tests
  ✅ should return variable if mock server returns object matching default type
  ✅ should return variableValue if mock server returns object matching default type
  ✅ should return default value if default type doesn't match variable type
  ✅ should return default value if default type doesn't match variableValue type
  ✅ should return default value if user is not bucketed into variable
  ✅ should return default value if user is not bucketed into variableValue
  ✅ should return default value if variable doesn't exist
  ✅ should return default value if variableValue doesn't exist
  ✅ should aggregate aggVariableDefaulted events for variable
  ✅ should aggregate aggVariableDefaulted events for variableValue
  ✅ should aggregate aggVariableEvaluated events for variable
  ✅ should aggregate aggVariableEvaluated events for variableValue
Variable Tests - Local › initialized client › Variable boolean tests
  ✅ should return variable if mock server returns object matching default type
  ✅ should return variableValue if mock server returns object matching default type
  ✅ should return default value if default type doesn't match variable type
  ✅ should return default value if default type doesn't match variableValue type
  ✅ should return default value if user is not bucketed into variable
  ✅ should return default value if user is not bucketed into variableValue
  ✅ should return default value if variable doesn't exist
  ✅ should return default value if variableValue doesn't exist
  ✅ should aggregate aggVariableDefaulted events for variable
  ✅ should aggregate aggVariableDefaulted events for variableValue
  ✅ should aggregate aggVariableEvaluated events for variable
  ✅ should aggregate aggVariableEvaluated events for variableValue
Variable Tests - Local › initialized client › Variable JSON tests
  ✅ should return variable if mock server returns object matching default type
  ✅ should return variableValue if mock server returns object matching default type
  ✅ should return default value if default type doesn't match variable type
  ✅ should return default value if default type doesn't match variableValue type
  ✅ should return default value if user is not bucketed into variable
  ✅ should return default value if user is not bucketed into variableValue
  ✅ should return default value if variable doesn't exist
  ✅ should return default value if variableValue doesn't exist
  ✅ should aggregate aggVariableDefaulted events for variable
  ✅ should aggregate aggVariableDefaulted events for variableValue
  ✅ should aggregate aggVariableEvaluated events for variable
  ✅ should aggregate aggVariableEvaluated events for variableValue
Variable Tests - Local › initialized client
  ✅ should return a valid unicode string for variable
  ✅ should return a valid unicode string for variableValue
Variable Tests - Local › uninitialized client › Variable string tests
  ✅ should return variable default value if client is uninitialized, log event
  ✅ should return variableValue default value if client is uninitialized, log event
  ✅ should return default value for variable if client config failed, log event
  ✅ should return default value for variableValue if client config failed, log event
Variable Tests - Local › uninitialized client › Variable number tests
  ✅ should return variable default value if client is uninitialized, log event
  ✅ should return variableValue default value if client is uninitialized, log event
  ✅ should return default value for variable if client config failed, log event
  ✅ should return default value for variableValue if client config failed, log event
Variable Tests - Local › uninitialized client › Variable boolean tests
  ✅ should return variable default value if client is uninitialized, log event
  ✅ should return variableValue default value if client is uninitialized, log event
  ✅ should return default value for variable if client config failed, log event
  ✅ should return default value for variableValue if client config failed, log event
Variable Tests - Local › uninitialized client › Variable JSON tests
  ✅ should return variable default value if client is uninitialized, log event
  ✅ should return variableValue default value if client is uninitialized, log event
  ✅ should return default value for variable if client config failed, log event
  ✅ should return default value for variableValue if client config failed, log event

✅ harness/types/capabilities.test.ts

SDKCapabilities Unit Tests
  ✅ should load capabilities from env variables
  ✅ should load capabilities from env variables as JSON
  ✅ should use default capabilities if env variables are not set