@cloudpayments/checkout
Version:
77 lines (52 loc) • 2.59 kB
JavaScript
const url = 'https://checkout.cloudpayments.ru/checkout.js';
const publicId = 'test_api_00000000000000000000001';
function dispatchScriptEvent(eventType) {
const injectedScript = document.querySelector(
`script[src="${url}"]`
);
if (!injectedScript) {
throw new Error('checkout script not found');
}
injectedScript.dispatchEvent(new Event(eventType));
}
describe('npm load', () => {
afterEach(() => {
const script = document.querySelector(`script[src="${url}"], script[src="${url}/"]`);
if (script && script.parentElement) {
script.parentElement.removeChild(script);
}
delete window.cp?.Checkout;
});
it('not empty', async () => {
await checkout.loadCheckout({publicId: `${publicId}`});
expect(document.querySelector(`script[src="${url}"]`)).to.be.not.a('null');
});
it('script into window', async () => {
await checkout.loadCheckout({publicId: `${publicId}`});
document.querySelector(`script[src="${url}"], script[src="${url}/"]`);
expect(window.cp.Checkout).to.be.not.a('null');
});
it('script into window', async () => {
await checkout.loadCheckout({publicId: `${publicId}`});
const script = document.createElement('script');
script.src = url;
document.body.appendChild(script);
expect(document.querySelectorAll(`script[src="${url}"], script[src="${url}/"]`)).to.have.length(1);
});
it('проверка возможности добавить чекаут и виджет', async () => {
await checkout.loadCheckout({publicId: `${publicId}`});
const script = document.createElement('script');
script.src = 'https://widget.cloudpayments.ru/bundles/cloudpayments';
document.body.appendChild(script);
expect(document.querySelector(`script[src="${url}"], script[src="${url}/"]`)).to.be.not.a('null');
expect(document.querySelector(`script[src="https://widget.cloudpayments.ru/bundles/cloudpayments"]`)).to.be.not.a('null');
});
it('проверка возможности добавить чекаут и виджет#2', async () => {
await checkout.loadCheckout({publicId: `${publicId}`});
const script = document.createElement('script');
script.src = 'https://widget.cloudpayments.ru/bundles/cloudpayments';
document.body.appendChild(script);
expect(window.cp.Checkout).to.be.not.a('null');
expect(window.cp.CloudPayments).to.be.not.a('null');
});
});