@rebilly/instruments 3.23.0-beta.1 → 3.24.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +10 -17
- package/dist/index.min.js +49 -56
- package/package.json +2 -1
- package/src/functions/destroy.js +11 -9
- package/src/functions/mount/fetch-data.js +14 -16
- package/src/functions/mount/fetch-data.spec.js +140 -93
- package/src/functions/mount/index.js +9 -10
- package/src/functions/mount/mount.spec.js +5 -7
- package/src/functions/mount/setup-framepay-theme.js +2 -1
- package/src/functions/mount/setup-framepay.js +3 -1
- package/src/functions/mount/setup-i18n.js +4 -2
- package/src/functions/mount/setup-options.js +6 -4
- package/src/functions/on.spec.js +3 -2
- package/src/functions/purchase.js +17 -6
- package/src/functions/setup.js +3 -4
- package/src/functions/show.js +7 -6
- package/src/functions/show.spec.js +11 -7
- package/src/functions/update.js +3 -3
- package/src/functions/update.spec.js +4 -3
- package/src/instance.js +11 -31
- package/src/state/iframes.js +23 -0
- package/src/state/index.js +62 -0
- package/src/storefront/account-and-website.js +3 -2
- package/src/storefront/{fetch-plans-from-addons-bumpOffers.js → fetch-plans-from-addons-bumpOffer.js} +5 -4
- package/src/storefront/fetch-products-from-plans.js +5 -4
- package/src/storefront/index.js +3 -4
- package/src/storefront/invoices.js +6 -4
- package/src/storefront/payment-instruments.js +5 -4
- package/src/storefront/purchase.js +5 -4
- package/src/storefront/ready-to-pay.js +2 -2
- package/src/storefront/summary.js +8 -3
- package/src/storefront/transactions.js +3 -2
- package/src/style/base/index.js +243 -0
- package/src/views/common/iframe/base-iframe.js +0 -2
- package/src/views/common/iframe/events/update-addons-handler.js +8 -13
- package/src/views/common/iframe/events/update-coupons-handler.js +5 -11
- package/src/views/common/iframe/modal-iframe.js +12 -11
- package/src/views/confirmation.js +16 -6
- package/src/views/method-selector/__snapshots__/method-selector.spec.js.snap +182 -1
- package/src/views/method-selector/generate-digital-wallet.js +2 -1
- package/src/views/method-selector/generate-digital-wallet.spec.js +32 -37
- package/src/views/method-selector/generate-framepay-config.js +1 -1
- package/src/views/method-selector/generate-framepay-config.spec.js +9 -12
- package/src/views/method-selector/get-payment-methods.js +3 -1
- package/src/views/method-selector/get-payment-methods.spec.js +25 -34
- package/src/views/method-selector/index.js +41 -22
- package/src/views/method-selector/method-selector.spec.js +9 -109
- package/src/views/method-selector/mount-bump-offer.js +99 -0
- package/src/views/method-selector/mount-express-methods.js +1 -2
- package/src/views/modal.js +3 -3
- package/src/views/result.js +7 -5
- package/src/views/summary.js +12 -16
- package/tests/mocks/rebilly-instruments-mock.js +17 -19
- package/tests/mocks/storefront-mock.js +10 -9
- package/tests/setup-jest.js +2 -0
package/src/views/result.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ViewIframe } from './common/iframe';
|
|
2
2
|
import { replaceContent } from './common/render-utilities';
|
|
3
|
+
import state from '../state';
|
|
4
|
+
import iframes from '../state/iframes';
|
|
3
5
|
|
|
4
|
-
export async function mountResult({ payload
|
|
6
|
+
export async function mountResult({ payload }) {
|
|
5
7
|
const resultContainerClassName = 'rebilly-instruments-result';
|
|
6
8
|
replaceContent(state.form, `<div class="${resultContainerClassName}"></div>`);
|
|
7
9
|
|
|
@@ -11,14 +13,14 @@ export async function mountResult({ payload, state }) {
|
|
|
11
13
|
const container = document.querySelector(`.${resultContainerClassName}`);
|
|
12
14
|
const { paymentMethodsUrl } = state.options._computed;
|
|
13
15
|
|
|
16
|
+
const modelSafeState = state.toModel();
|
|
14
17
|
const model = {
|
|
15
|
-
options:
|
|
16
|
-
mainStyleVars:
|
|
18
|
+
options: modelSafeState.options,
|
|
19
|
+
mainStyleVars: modelSafeState.mainStyleVars,
|
|
17
20
|
[state.options.transactionType]: payload
|
|
18
21
|
};
|
|
19
22
|
|
|
20
23
|
const iframe = await new ViewIframe({
|
|
21
|
-
state,
|
|
22
24
|
name: 'rebilly-instruments-result',
|
|
23
25
|
url: `${paymentMethodsUrl}/result`,
|
|
24
26
|
container,
|
|
@@ -28,5 +30,5 @@ export async function mountResult({ payload, state }) {
|
|
|
28
30
|
loader: state.loader
|
|
29
31
|
});
|
|
30
32
|
|
|
31
|
-
|
|
33
|
+
iframes.form = iframe;
|
|
32
34
|
}
|
package/src/views/summary.js
CHANGED
|
@@ -1,33 +1,29 @@
|
|
|
1
|
+
import state from '../state';
|
|
2
|
+
import iframes from '../state/iframes';
|
|
1
3
|
import { ViewIframe } from './common/iframe';
|
|
2
4
|
import { fetchSummary } from '../storefront/summary';
|
|
3
5
|
|
|
4
|
-
export async function mountSummary(
|
|
6
|
+
export async function mountSummary() {
|
|
7
|
+
const modelSafeState = state.toModel();
|
|
5
8
|
const model = {
|
|
6
|
-
options:
|
|
7
|
-
data:
|
|
8
|
-
mainStyleVars:
|
|
9
|
+
options: modelSafeState.options,
|
|
10
|
+
data: modelSafeState.data,
|
|
11
|
+
mainStyleVars: modelSafeState.mainStyleVars,
|
|
9
12
|
};
|
|
10
|
-
const { paymentMethodsUrl } = state.options
|
|
13
|
+
const { paymentMethodsUrl } = state.options?._computed;
|
|
11
14
|
|
|
12
15
|
const iframe = await new ViewIframe({
|
|
13
|
-
state,
|
|
14
16
|
name: 'rebilly-instruments-summary',
|
|
15
17
|
url: `${paymentMethodsUrl}/summary`,
|
|
16
18
|
container: state.summary,
|
|
17
19
|
model
|
|
18
20
|
});
|
|
19
21
|
iframe.bindEventListeners({loader: state.loader});
|
|
20
|
-
|
|
22
|
+
iframes.summary = iframe;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
export async function updateSummary({
|
|
24
|
-
await fetchSummary({data: instrument
|
|
25
|
-
|
|
26
|
-
data: state.data.toPostmatesModel(),
|
|
27
|
-
options: state.options
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
state.iframeComponents.summary.component.call('update', updateModel);
|
|
31
|
-
state.iframeComponents.form.component.call('update', updateModel);
|
|
25
|
+
export async function updateSummary({ instrument } = {}) {
|
|
26
|
+
await fetchSummary({ data: instrument });
|
|
27
|
+
state.updateModel();
|
|
32
28
|
}
|
|
33
29
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import RebillyInstruments from 'src/index';
|
|
2
2
|
import { createFramepayMock } from 'tests/mocks/framepay-mock';
|
|
3
3
|
import { get, ok, post } from 'msw-when-then';
|
|
4
4
|
import { when } from 'tests/msw/server';
|
|
@@ -42,7 +42,6 @@ export async function RenderMockRebillyInstruments(options = {}) {
|
|
|
42
42
|
}
|
|
43
43
|
]
|
|
44
44
|
});
|
|
45
|
-
const framePayStyleUrl = 'https://dev.framepay.rebilly.com/rebilly.css';
|
|
46
45
|
|
|
47
46
|
when(get(`${storefrontURL}/invoices/*`)).thenReturn(
|
|
48
47
|
(() => ok(testInvoice))()
|
|
@@ -80,7 +79,8 @@ export async function RenderMockRebillyInstruments(options = {}) {
|
|
|
80
79
|
summary: '.summary-selector',
|
|
81
80
|
locale: 'auto',
|
|
82
81
|
_dev: {
|
|
83
|
-
|
|
82
|
+
paymentMethodsUrl: 'https://forms.test.rebilly.dev',
|
|
83
|
+
framePayStyleLink: 'https://dev.framepay.rebilly.com/rebilly.css'
|
|
84
84
|
},
|
|
85
85
|
};
|
|
86
86
|
|
|
@@ -105,26 +105,24 @@ export async function RenderMockRebillyInstruments(options = {}) {
|
|
|
105
105
|
const framepayMock = createFramepayMock();
|
|
106
106
|
global.Rebilly = framepayMock;
|
|
107
107
|
|
|
108
|
-
const
|
|
108
|
+
const form = document.createElement('div');
|
|
109
|
+
form.classList.add(`${mergedOptions.form.replace('.', '')}`);
|
|
110
|
+
document.body.appendChild(form);
|
|
109
111
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
`;
|
|
112
|
+
const summary = document.createElement('div');
|
|
113
|
+
summary.classList.add(`${mergedOptions.summary.replace('.', '')}`);
|
|
114
|
+
document.body.appendChild(summary);
|
|
114
115
|
|
|
115
|
-
await
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
await RebillyInstruments.mount({
|
|
117
|
+
setupFramepay: setupFramepayMock,
|
|
118
|
+
...mergedOptions,
|
|
119
|
+
});
|
|
119
120
|
|
|
120
|
-
|
|
121
|
+
RebillyInstruments.mock = {
|
|
121
122
|
data: (data) => {
|
|
122
|
-
|
|
123
|
-
state: rebillyInstruments.state,
|
|
124
|
-
...data
|
|
125
|
-
});
|
|
123
|
+
RebillyInstruments.state.data = new DataInstance(data);
|
|
126
124
|
}
|
|
127
125
|
};
|
|
128
126
|
|
|
129
|
-
return
|
|
130
|
-
}
|
|
127
|
+
return RebillyInstruments;
|
|
128
|
+
}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import Storefront from '@/storefront';
|
|
2
2
|
import { DataInstance } from '@/functions/mount/fetch-data';
|
|
3
|
+
import state from '../../src/state';
|
|
3
4
|
|
|
4
5
|
export function MockStorefront(config = {}) {
|
|
5
6
|
return Storefront(config);
|
|
6
7
|
}
|
|
7
8
|
|
|
8
9
|
export function StorefontTestingInstance({
|
|
9
|
-
MockStorefrontConfig = {},
|
|
10
10
|
options = {},
|
|
11
11
|
data = {}
|
|
12
12
|
} = {}) {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
}
|
|
13
|
+
state.storefront = null;
|
|
14
|
+
state.storefront = MockStorefront();
|
|
15
|
+
|
|
16
|
+
state.options = null;
|
|
17
|
+
state.options = options;
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
state.data = null;
|
|
20
|
+
state.data = new DataInstance(data);
|
|
21
|
+
|
|
22
|
+
return state;
|
|
22
23
|
}
|
package/tests/setup-jest.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { initGlobalHandlers, server } from './msw/server';
|
|
2
|
+
import state from '../src/state';
|
|
2
3
|
|
|
3
4
|
jest.mock('@rebilly/risk-data-collector', () => {
|
|
4
5
|
return {
|
|
@@ -18,6 +19,7 @@ beforeAll(() => {
|
|
|
18
19
|
|
|
19
20
|
beforeEach(() => {
|
|
20
21
|
initGlobalHandlers();
|
|
22
|
+
state.reset();
|
|
21
23
|
});
|
|
22
24
|
|
|
23
25
|
afterEach(() => {
|