Skip to content

Commit

Permalink
Simplify app bridge redirect
Browse files Browse the repository at this point in the history
  • Loading branch information
kirillplatonov committed Jul 5, 2024
1 parent 5e47a45 commit 97060e2
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 46 deletions.
10 changes: 0 additions & 10 deletions app/assets/javascripts/shopify_app/app_bridge_redirect.js

This file was deleted.

10 changes: 3 additions & 7 deletions app/assets/javascripts/shopify_app/redirect.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
//= require ./app_bridge_redirect.js

(function () {
function redirect() {
var redirectTargetElement = document.getElementById("redirection-target");
Expand All @@ -9,12 +7,10 @@
}

var targetInfo = JSON.parse(redirectTargetElement.dataset.target);
var normalizedLink = document.createElement('a');
normalizedLink.href = targetInfo.url;

if (window['shopify']) {
window.appBridgeRedirect(targetInfo.url);
} else {
window.top.location.href = targetInfo.url;
}
open(normalizedLink.href, '_top');
}

document.addEventListener("DOMContentLoaded", redirect);
Expand Down
21 changes: 0 additions & 21 deletions test/javascripts/shopify_app/app_bridge_redirect_test.js

This file was deleted.

19 changes: 11 additions & 8 deletions test/javascripts/shopify_app/redirect_test.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
suite('redirect', () => {
const redirectHelperSandbox = sinon.createSandbox();
const { assert } = require("chai");

suite('redirect', () => {
const sandbox = sinon.createSandbox();
const open = sinon.spy();
let contentContainer;
let url = '/settings';

Expand All @@ -10,18 +12,19 @@ suite('redirect', () => {
contentContainer.setAttribute('id', 'redirection-target');
contentContainer.dataset['target'] = JSON.stringify({url});
document.body.appendChild(contentContainer);

window['shopify'] = {};
redirectHelperSandbox.stub(window, 'appBridgeRedirect').callsFake(() => {});
sandbox.stub(window, 'open').callsFake(open);
});

teardown(() => {
redirectHelperSandbox.restore();
sandbox.restore();
document.body.removeChild(contentContainer);
});

test('calls appBridgeRedirect', () => {
test('opens redirect url', () => {
require('../../../app/assets/javascripts/shopify_app/redirect');
sinon.assert.calledWith(window.appBridgeRedirect, url);

assert(open.calledOnce);
assert.match(open.lastCall.args[0], new RegExp(`${url}$`));
assert.equal(open.lastCall.args[1], '_top');
});
});

0 comments on commit 97060e2

Please sign in to comment.