Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/sentry/api/endpoints/project_key_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ def get(self, request: Request, project, key_id) -> Response:
help_text="The Sentry Javascript SDK version to use. The currently supported options are:",
# Ideally we would call get_browser_sdk_version_choices() here but that requires
# passing in project to this decorator
# todo: v8 add version
choices=[("latest", "Most recent version"), ("7.x", "Version 7 releases")],
required=False,
),
Expand Down
1 change: 1 addition & 0 deletions src/sentry/loader/browsersdkversion.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ def get_highest_browser_sdk_version(versions):


def get_all_browser_sdk_version_versions():
# todo: v8 add version
return ["latest", "7.x", "6.x", "5.x", "4.x"]


Expand Down
1 change: 1 addition & 0 deletions src/sentry/projectoptions/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@
)

# The available loader SDK versions
# todo: v8 add version
register(
key="sentry:loader_available_sdk_versions",
epoch_defaults={1: ["7.x", "6.x", "5.x", "4.x"], 11: ["7.x"]},
Expand Down
5 changes: 3 additions & 2 deletions src/sentry/web/frontend/js_sdk_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def _get_loader_config(
"hasDebug": False,
}

is_v7_sdk = sdk_version >= Version("7.0.0") and sdk_version < Version("8.0.0")
is_greater_or_equal_v7_sdk = sdk_version >= Version("7.0.0")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can leave the name of is_greater_or_equal_v7_sdk as-is. Imo it doesn't add any value renaming and that way git blame is a bit more useful.


is_lazy = True
Expand All @@ -89,12 +90,12 @@ def _get_loader_config(
bundle_kind_modifier += ".replay"
is_lazy = False

# From JavaScript SDK version 7 onwards, the default bundle code is ES6, however, in the loader we
# In JavaScript SDK version 7, the default bundle code is ES6, however, in the loader we
# want to provide the ES5 version. This is why we need to modify the requested bundle name here.
#
# If we are loading replay, do not add the es5 modifier, as those bundles are
# ES6 only.
if is_greater_or_equal_v7_sdk and not has_replay:
if is_v7_sdk and not has_replay:
bundle_kind_modifier += ".es5"

if has_debug:
Expand Down
36 changes: 36 additions & 0 deletions tests/sentry/web/frontend/test_js_sdk_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,42 @@ def test_returns_latest_pre_v8_version_when_latest_is_selected_various_v8_versio
self.assertTemplateUsed(resp, "sentry/js-sdk-loader.js.tmpl")
assert b"/7.100.0/bundle.tracing.replay.min.js" in resp.content

@mock.patch(
"sentry.loader.browsersdkversion.load_version_from_file",
return_value=["8.0.0"],
)
@mock.patch(
"sentry.loader.browsersdkversion.get_selected_browser_sdk_version", return_value="8.x"
)
def test_equal_to_v8_returns_default_bundle(
self, load_version_from_file, get_selected_browser_sdk_version
):
settings.JS_SDK_LOADER_DEFAULT_SDK_URL = "https://browser.sentry-cdn.com/%s/bundle%s.min.js"
self.projectkey.data = {}
self.projectkey.save()
resp = self.client.get(self.path)
assert resp.status_code == 200
self.assertTemplateUsed(resp, "sentry/js-sdk-loader.js.tmpl")
assert b"/8.0.0/bundle.min.js" in resp.content

@mock.patch(
"sentry.loader.browsersdkversion.load_version_from_file",
return_value=["8.1.0", "8.0.0", "8", "8.0.0-alpha.0"],
)
@mock.patch(
"sentry.loader.browsersdkversion.get_selected_browser_sdk_version", return_value="8.x"
)
def test_returns_latest_v8_version_when_various_v8_versions_available(
self, load_version_from_file, get_selected_browser_sdk_version
):
settings.JS_SDK_LOADER_DEFAULT_SDK_URL = "https://browser.sentry-cdn.com/%s/bundle%s.min.js"
self.projectkey.data = {}
self.projectkey.save()
resp = self.client.get(self.path)
assert resp.status_code == 200
self.assertTemplateUsed(resp, "sentry/js-sdk-loader.js.tmpl")
assert b"/8.1.0/bundle.min.js" in resp.content

@mock.patch("sentry.loader.browsersdkversion.load_version_from_file", return_value=["7.37.0"])
@mock.patch(
"sentry.loader.browsersdkversion.get_selected_browser_sdk_version", return_value="7.x"
Expand Down