Skip to content

Commit 270a826

Browse files
authored
feat(js-loader): Only use es5/es6 bundles in v7 JS loader (#66303)
As the coming version of the JS SDK only uses ES2017 bundles, it is no longer necessary to differentiate between es5 and es6 bundles. ref getsentry/sentry-javascript#10911
1 parent 8013bd9 commit 270a826

File tree

5 files changed

+42
-2
lines changed

5 files changed

+42
-2
lines changed

src/sentry/api/endpoints/project_key_details.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ def get(self, request: Request, project, key_id) -> Response:
8888
help_text="The Sentry Javascript SDK version to use. The currently supported options are:",
8989
# Ideally we would call get_browser_sdk_version_choices() here but that requires
9090
# passing in project to this decorator
91+
# todo: v8 add version
9192
choices=[("latest", "Most recent version"), ("7.x", "Version 7 releases")],
9293
required=False,
9394
),

src/sentry/loader/browsersdkversion.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def get_highest_browser_sdk_version(versions):
3737

3838

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

4243

src/sentry/projectoptions/defaults.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@
169169
)
170170

171171
# The available loader SDK versions
172+
# todo: v8 add version
172173
register(
173174
key="sentry:loader_available_sdk_versions",
174175
epoch_defaults={1: ["7.x", "6.x", "5.x", "4.x"], 11: ["7.x"]},

src/sentry/web/frontend/js_sdk_loader.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def _get_loader_config(
6767
"hasDebug": False,
6868
}
6969

70+
is_v7_sdk = sdk_version >= Version("7.0.0") and sdk_version < Version("8.0.0")
7071
is_greater_or_equal_v7_sdk = sdk_version >= Version("7.0.0")
7172

7273
is_lazy = True
@@ -89,12 +90,12 @@ def _get_loader_config(
8990
bundle_kind_modifier += ".replay"
9091
is_lazy = False
9192

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

100101
if has_debug:

tests/sentry/web/frontend/test_js_sdk_loader.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,42 @@ def test_returns_latest_pre_v8_version_when_latest_is_selected_various_v8_versio
175175
self.assertTemplateUsed(resp, "sentry/js-sdk-loader.js.tmpl")
176176
assert b"/7.100.0/bundle.tracing.replay.min.js" in resp.content
177177

178+
@mock.patch(
179+
"sentry.loader.browsersdkversion.load_version_from_file",
180+
return_value=["8.0.0"],
181+
)
182+
@mock.patch(
183+
"sentry.loader.browsersdkversion.get_selected_browser_sdk_version", return_value="8.x"
184+
)
185+
def test_equal_to_v8_returns_default_bundle(
186+
self, load_version_from_file, get_selected_browser_sdk_version
187+
):
188+
settings.JS_SDK_LOADER_DEFAULT_SDK_URL = "https://browser.sentry-cdn.com/%s/bundle%s.min.js"
189+
self.projectkey.data = {}
190+
self.projectkey.save()
191+
resp = self.client.get(self.path)
192+
assert resp.status_code == 200
193+
self.assertTemplateUsed(resp, "sentry/js-sdk-loader.js.tmpl")
194+
assert b"/8.0.0/bundle.min.js" in resp.content
195+
196+
@mock.patch(
197+
"sentry.loader.browsersdkversion.load_version_from_file",
198+
return_value=["8.1.0", "8.0.0", "8", "8.0.0-alpha.0"],
199+
)
200+
@mock.patch(
201+
"sentry.loader.browsersdkversion.get_selected_browser_sdk_version", return_value="8.x"
202+
)
203+
def test_returns_latest_v8_version_when_various_v8_versions_available(
204+
self, load_version_from_file, get_selected_browser_sdk_version
205+
):
206+
settings.JS_SDK_LOADER_DEFAULT_SDK_URL = "https://browser.sentry-cdn.com/%s/bundle%s.min.js"
207+
self.projectkey.data = {}
208+
self.projectkey.save()
209+
resp = self.client.get(self.path)
210+
assert resp.status_code == 200
211+
self.assertTemplateUsed(resp, "sentry/js-sdk-loader.js.tmpl")
212+
assert b"/8.1.0/bundle.min.js" in resp.content
213+
178214
@mock.patch("sentry.loader.browsersdkversion.load_version_from_file", return_value=["7.37.0"])
179215
@mock.patch(
180216
"sentry.loader.browsersdkversion.get_selected_browser_sdk_version", return_value="7.x"

0 commit comments

Comments
 (0)