Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Implement Checkmo #2927 #2969

Merged
merged 46 commits into from
Mar 12, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
fbe5d2f
#2927: WIP Implement Checkmo
Jan 25, 2021
2871233
Merge branch 'develop' into checkmo-sample-payment
Jan 25, 2021
88dc077
Implement biling adress form
Jan 29, 2021
a1fd873
Fix errors for update payment
Jan 29, 2021
4f7d099
Yarn lint and format
Jan 29, 2021
084fe68
Fix address typos
jimbo Jan 29, 2021
550ae0f
Update packages/extensions/venia-sample-payments-checkmo/README.md
Feb 2, 2021
ff1bf9b
Update packages/extensions/venia-sample-payments-checkmo/README.md
Feb 2, 2021
d0fc6ee
Update packages/extensions/venia-sample-payments-checkmo/README.md
Feb 2, 2021
8f20483
Update packages/extensions/venia-sample-payments-checkmo/README.md
Feb 2, 2021
924d688
Update packages/extensions/venia-sample-payments-checkmo/README.md
Feb 2, 2021
898ab47
Update packages/extensions/venia-sample-payments-checkmo/intercept.js
Feb 2, 2021
4c38b27
Merge remote-tracking branch 'upstream/develop' into checkmo-sample-p…
Feb 4, 2021
9b8e1d9
Update yarn.lock
Feb 4, 2021
3925a2f
fix log
Feb 4, 2021
f9cf030
Review fixes
Feb 4, 2021
ecc6775
Review fixes
Feb 4, 2021
7693a05
Merge branch 'checkmo-sample-payment' of github.com:larsroettig/pwa-s…
Feb 4, 2021
3904399
Update packages/extensions/venia-sample-payments-checkmo/talons/useBi…
Feb 4, 2021
fd56b24
Doc improvements
Feb 4, 2021
b7b75d7
Merge branch 'checkmo-sample-payment' of github.com:larsroettig/pwa-s…
Feb 4, 2021
542ce76
Cleanup
Feb 4, 2021
73479a3
useLazyQuery
Feb 5, 2021
1c9815c
jest coverage
Feb 8, 2021
5bd4c3d
Merge remote-tracking branch 'upstream/develop' into checkmo-sample-p…
Feb 10, 2021
f2d0e2a
WIP
Feb 10, 2021
49b1552
Merge remote-tracking branch 'upstream/develop' into checkmo-sample-p…
Feb 20, 2021
86c1009
Add coverage for billingAddress
Feb 25, 2021
af69781
Merge remote-tracking branch 'upstream/develop' into checkmo-sample-p…
Feb 25, 2021
a46fb16
Rest snap to develop
Feb 25, 2021
055f1d1
Coverage for useBillingAddress
Feb 25, 2021
7861d41
Merge branch 'develop' into checkmo-sample-payment
Feb 25, 2021
0e001f8
Coverage for useBillingAddress
Feb 25, 2021
7e8beb2
Merge branch 'checkmo-sample-payment' of github.com:larsroettig/pwa-s…
Feb 25, 2021
4f29e9e
Fix pwa-buildpack version
Feb 25, 2021
340f253
Update packages/extensions/venia-sample-payments-checkmo/src/talons/_…
Mar 2, 2021
0ad038b
Fix Styling Issues
Mar 2, 2021
3fd6e41
Merge branch 'checkmo-sample-payment' of github.com:larsroettig/pwa-s…
Mar 2, 2021
3a90036
Merge branch 'develop' into checkmo-sample-payment
Mar 2, 2021
84cef43
lint and prettier
Mar 2, 2021
a50d13c
Update Typo in Test Snapshot
Mar 3, 2021
30a360c
Fix typo
Mar 3, 2021
55b720b
Merge branch 'develop' into checkmo-sample-payment
Mar 3, 2021
154bcc8
Merge branch 'develop' into checkmo-sample-payment
dpatil-magento Mar 12, 2021
07f0164
Fix versions for checkmo/package.json
Mar 12, 2021
ce6c731
Merge branch 'develop' into checkmo-sample-payment
dpatil-magento Mar 12, 2021
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
10 changes: 10 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,16 @@ const jestConfig = {
path.join('<rootDir>', 'scripts', 'jest-backend-setup.js')
]
})),
configureProject(
'extensions/venia-sample-payments-checkmo',
'Check Money Order Payment',
inPackage => ({
...testReactComponents(inPackage),
setupFiles: [
path.join('<rootDir>', 'scripts', 'jest-backend-setup.js')
]
})
),
// Test any root CI scripts as well, to ensure stable CI behavior.
configureProject('scripts', 'CI Scripts', () => ({
testEnvironment: 'node',
Expand Down
11 changes: 11 additions & 0 deletions packages/extensions/venia-sample-payments-checkmo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# venia-sample-payments-checkmo

This package provides a sample static `Check MO (Money Order)` payment method for Venia.
_Note: Currently GraphQL configuration for `payment/checkmo/payable_to and payment/checkmo/mailing_address` is not implemented, so we mock them._

## Installation

To install this extension, add it as a `devDependency` to your app.
project:

`yarn add -D @magento/venia-sample-payments-checkmo`
23 changes: 23 additions & 0 deletions packages/extensions/venia-sample-payments-checkmo/intercept.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
module.exports = targets => {
const { specialFeatures } = targets.of('@magento/pwa-buildpack');
specialFeatures.tap(flags => {
/**
* Wee need to activate esModules, cssModules and GQL Queries to allow build pack to load our extension
* {@link https://magento.github.io/pwa-studio/pwa-buildpack/reference/configure-webpack/#special-flags}.
*/
flags[targets.name] = {
esModules: true,
cssModules: true,
graphqlQueries: true
};
});

const { checkoutPagePaymentTypes } = targets.of('@magento/venia-ui');
checkoutPagePaymentTypes.tap(payments =>
payments.add({
paymentCode: 'checkmo',
importPath:
'@magento/venia-sample-payments-checkmo/src/components/checkmo.js'
})
);
};
27 changes: 27 additions & 0 deletions packages/extensions/venia-sample-payments-checkmo/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "@magento/venia-sample-payments-checkmo",
"version": "0.0.1",
"publishConfig": {
"access": "public"
},
"description": "Provides demo Check Money Order Payment Method for PWA Studio.",
"main": "./intercept.js",
"scripts": {
"clean": " "
},
"repository": "github:magento/pwa-studio",
"license": "(OSL-3.0 OR AFL-3.0)",
"peerDependencies": {
"@magento/peregrine": "~9.0.0",
"@magento/pwa-buildpack": "~8.0.1",
"@magento/venia-ui": "~6.0.1",
"react": "~17.0.1",
"react-intl": "~5.7.0",
"react-router-dom": "~5.1.0"
},
"pwa-studio": {
"targets": {
"intercept": "./intercept.js"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Should render with mailingAddress payable 1`] = `
<div
className="root"
>
<p
className="title"
>
<mock-FormattedMessage
defaultMessage="Make Check payable to:"
id="checkMo.payableToTitle"
/>
</p>
<p
className="formatAddress"
>
Test Inc
</p>
<p
className="mailingAddressTitle"
>
<mock-FormattedMessage
defaultMessage="Send Check to:"
id="checkMo.mailingAddressTitle"
/>
</p>
<p
className="formatAddress"
>
<span
className="addressLine"
>
Test Inc

<br />
</span>
<span
className="addressLine"
>
c/o Payment

<br />
</span>
<span
className="addressLine"
>
PO 12

<br />
</span>
<span
className="addressLine"
>
Austin Texas

<br />
</span>
</p>
<p
className="note"
>
<mock-FormattedMessage
defaultMessage="Note: Your order will be shipped once the Check/Money Order has been received and processed."
id="checkMo.note"
/>
</p>
<mock-BillingAddress
onBillingAddressChangedError={[MockFunction]}
onBillingAddressChangedSuccess={[MockFunction]}
/>
</div>
`;

exports[`Should return correct shape 1`] = `
<div
className="root"
>
<p
className="title"
>
<mock-FormattedMessage
defaultMessage="Make Check payable to:"
id="checkMo.payableToTitle"
/>
</p>
<p
className="formatAddress"
>
Venia Inc
</p>
<p
className="mailingAddressTitle"
>
<mock-FormattedMessage
defaultMessage="Send Check to:"
id="checkMo.mailingAddressTitle"
/>
</p>
<p
className="formatAddress"
>
<span
className="addressLine"
>
Venia Inc

<br />
</span>
<span
className="addressLine"
>
c/o Payment

<br />
</span>
<span
className="addressLine"
>
PO 122334

<br />
</span>
<span
className="addressLine"
>
Austin Texas

<br />
</span>
</p>
<p
className="note"
>
<mock-FormattedMessage
defaultMessage="Note: Your order will be shipped once the Check/Money Order has been received and processed."
id="checkMo.note"
/>
</p>
<mock-BillingAddress
onBillingAddressChangedError={[MockFunction]}
onBillingAddressChangedSuccess={[MockFunction]}
/>
</div>
`;
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import React from 'react';
import { createTestInstance } from '@magento/peregrine';
import { useCheckmo } from '../../talons/useCheckmo';

import CheckMo from '../checkmo';

jest.mock('@magento/venia-ui/lib/classify');
jest.mock('../../talons/useCheckmo', () => {
return {
useCheckmo: jest.fn().mockReturnValue({
payableTo: '',
mailingAddress: '',
onBillingAddressChangedError: jest.fn(),
onBillingAddressChangedSuccess: jest.fn()
})
};
});

jest.mock(
'@magento/venia-ui/lib/components/CheckoutPage/BillingAddress',
() => props => <mock-BillingAddress {...props} />
);

const useCheckmoReturnValue = {
payableTo: '',
mailingAddress: '',
onBillingAddressChangedError: jest.fn(),
onBillingAddressChangedSuccess: jest.fn()
};

test('Should return correct shape', () => {
useCheckmo.mockReturnValueOnce({
...useCheckmoReturnValue
});

const tree = createTestInstance(<CheckMo />);

expect(tree.toJSON()).toMatchSnapshot();
});

test('Should render with mailingAddress payable', () => {
useCheckmo.mockReturnValueOnce({
...useCheckmoReturnValue,
payableTo: 'Test Inc',
mailingAddress: 'Test Inc\r\nc/o Payment\r\nPO 12\r\nAustin Texas'
});

const tree = createTestInstance(<CheckMo />);

expect(tree.toJSON()).toMatchSnapshot();
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
.root {
padding-top: 1.125rem;
}

.title {
font-weight: var(--venia-global-fontWeight-semibold);
}

.mailingAddressTitle {
font-weight: var(--venia-global-fontWeight-semibold);
padding-top: 1rem;
}

.note {
padding: 1rem 0;
}

.formatAddress {
padding: 0.5rem 0;
}

.addressLine {
display: block;
padding-bottom: 0.5rem;
}
Loading