Skip to content

Commit 289a865

Browse files
authored
[WT-1501] Make minor, patch, prerelase optional for checkout sdk versions (#872)
1 parent 556b194 commit 289a865

File tree

5 files changed

+93
-42
lines changed

5 files changed

+93
-42
lines changed

packages/checkout/widgets-lib/src/views/top-up/TopUpView.cy.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,8 +341,13 @@ describe('Top Up View', () => {
341341
</ConnectLoaderTestComponent>,
342342
);
343343

344+
cySmartGet('menu-item-caption-swap').contains('Using the coins I have on the same network');
344345
cySmartGet('menu-item-caption-swap').contains('$0.20 USD');
346+
347+
cySmartGet('menu-item-caption-bridge').contains('From the coins I have on a different network');
345348
cySmartGet('menu-item-caption-bridge').contains('$0.40 USD');
349+
350+
cySmartGet('menu-item-caption-onramp').contains('Google pay & Apple pay available. Minimum $5.');
346351
cySmartGet('menu-item-caption-onramp').contains('3.5% to 5.5%');
347352
});
348353

packages/checkout/widgets-lib/src/views/top-up/TopUpView.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ export function TopUpView({
249249
testId="onramp"
250250
icon="Wallet"
251251
heading={onramp.heading}
252-
caption={onramp.heading}
252+
caption={onramp.caption}
253253
subcaption={onramp.subcaption}
254254
onClick={onClickOnRamp}
255255
renderFeeFunction={() => renderFeePercentage(onRampFeesPercentage, loadingOnRampFees)}
@@ -260,7 +260,7 @@ export function TopUpView({
260260
testId="swap"
261261
icon="Coins"
262262
heading={swap.heading}
263-
caption={swap.heading}
263+
caption={swap.caption}
264264
subcaption={swap.subcaption}
265265
onClick={onClickSwap}
266266
renderFeeFunction={() => renderFees(swapFeesInFiat, loadingSwapFees)}

packages/checkout/widgets/src/CheckoutWidgets.test.ts

Lines changed: 60 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,32 +31,82 @@ describe('CheckoutWidgets', () => {
3131
expectedVersion: SDK_VERSION,
3232
},
3333
{
34-
title: 'undefined minor should return default version',
34+
title: 'undefined minor should return major version',
3535
version: {
3636
major: 1,
37-
minor: undefined as unknown as number,
37+
minor: undefined,
3838
patch: 1,
3939
prerelease: 'alpha',
4040
},
41-
expectedVersion: SDK_VERSION,
41+
expectedVersion: '1',
4242
},
4343
{
44-
title: 'undefined patch should return default version',
44+
title: 'undefined patch should return major.minor version',
4545
version: {
4646
major: 1,
4747
minor: 1,
48-
patch: undefined as unknown as number,
48+
patch: undefined,
4949
prerelease: 'alpha',
5050
},
51-
expectedVersion: SDK_VERSION,
51+
expectedVersion: '1.1',
52+
},
53+
{
54+
title: 'undefined patch with zero minor should return major.minor version',
55+
version: {
56+
major: 1,
57+
minor: 0,
58+
patch: undefined,
59+
prerelease: 'alpha',
60+
},
61+
expectedVersion: '1.0',
5262
},
5363
{
54-
title: 'undefined prerelease should return default version',
64+
title: 'Minor and patch zero values should return in version number',
65+
version: {
66+
major: 1,
67+
minor: 0,
68+
patch: 0,
69+
prerelease: undefined,
70+
},
71+
expectedVersion: '1.0.0',
72+
},
73+
{
74+
title: 'non-alpha prerelease should return major.minor.patch version',
75+
version: {
76+
major: 1,
77+
minor: 0,
78+
patch: 0,
79+
prerelease: 'test' as 'alpha',
80+
},
81+
expectedVersion: '1.0.0',
82+
},
83+
{
84+
title: 'undefined prerelease should return major.minor.patch version',
5585
version: {
5686
major: 1,
5787
minor: 1,
5888
patch: 1,
59-
prerelease: undefined as unknown as 'alpha',
89+
prerelease: undefined,
90+
},
91+
expectedVersion: '1.1.1',
92+
},
93+
{
94+
title: 'zero major version and rest are all undefined should return default version',
95+
version: {
96+
major: 0,
97+
minor: undefined,
98+
patch: undefined,
99+
prerelease: undefined,
100+
},
101+
expectedVersion: SDK_VERSION,
102+
},
103+
{
104+
title: 'major and minor as zeros and patch undefined should return default version',
105+
version: {
106+
major: 0,
107+
minor: 0,
108+
patch: undefined,
109+
prerelease: undefined,
60110
},
61111
expectedVersion: SDK_VERSION,
62112
},
@@ -71,14 +121,14 @@ describe('CheckoutWidgets', () => {
71121
expectedVersion: SDK_VERSION,
72122
},
73123
{
74-
title: 'invalid prerelease should return default version',
124+
title: 'invalid prerelease should return major.minor.patch version',
75125
version: {
76126
major: 0,
77127
minor: 1,
78128
patch: 0,
79129
prerelease: 'test' as 'alpha',
80130
},
81-
expectedVersion: SDK_VERSION,
131+
expectedVersion: '0.1.0',
82132
},
83133
{
84134
title: 'provided prerelease should be appended to version',

packages/checkout/widgets/src/CheckoutWidgets.ts

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,45 +12,41 @@ export function validateAndBuildVersion(
1212
): string {
1313
const defaultPackageVersion = globalPackageVersion();
1414

15-
if (version === undefined) return defaultPackageVersion;
16-
17-
// Pre-production release
18-
// TODO: https://immutable.atlassian.net/browse/WT-1501
19-
if (
20-
version.major === undefined
21-
|| version.minor === undefined
22-
|| version.patch === undefined
23-
|| version.prerelease === undefined
24-
) return defaultPackageVersion;
25-
26-
if (version.major < 0) return defaultPackageVersion;
27-
if (version.minor < 0) return defaultPackageVersion;
28-
if (version.patch < 0) return defaultPackageVersion;
29-
if (version.prerelease !== 'alpha') return defaultPackageVersion;
15+
if (version === undefined || version.major === undefined) return defaultPackageVersion;
3016

17+
if (!Number.isInteger(version.major) || version.major < 0) return defaultPackageVersion;
18+
if (version.minor !== undefined && version.minor < 0) return defaultPackageVersion;
19+
if (version.patch !== undefined && version.patch < 0) return defaultPackageVersion;
20+
21+
if (version.major === 0 && version.minor === undefined) return defaultPackageVersion;
22+
if (version.major === 0 && version.minor === 0 && version.patch === undefined) return defaultPackageVersion;
23+
if (version.major === 0 && version.minor === undefined && version.patch === undefined) return defaultPackageVersion;
3124
if (version.major === 0 && version.minor === 0 && version.patch === 0) return defaultPackageVersion;
3225

33-
let validatedVersion: string = defaultPackageVersion;
26+
let validatedVersion: string = version.major.toString();
3427

35-
if (!Number.isNaN(version.major) && version.major >= 0) {
36-
validatedVersion = version.major.toString();
37-
}
28+
if (version.minor === undefined) return validatedVersion;
3829

39-
if (!Number.isNaN(version.minor)) {
30+
if (Number.isInteger(version.minor)) {
4031
validatedVersion += `.${version.minor.toString()}`;
4132
}
4233

43-
if (!Number.isNaN(version.patch)) {
34+
if (version.patch === undefined) return validatedVersion;
35+
36+
if (Number.isInteger(version.patch)) {
4437
validatedVersion += `.${version.patch.toString()}`;
4538
}
4639

47-
// TODO: https://immutable.atlassian.net/browse/WT-1501
48-
// Ensure this is gated by `version.prerelease !== undefined`
49-
// once we go to prod with checkout.
50-
validatedVersion += `-${version.prerelease}`;
40+
if (version.prerelease === undefined || version.prerelease !== 'alpha') return validatedVersion;
41+
42+
if (version.prerelease === 'alpha') {
43+
validatedVersion += `-${version.prerelease}`;
44+
}
45+
46+
if (version.build === undefined) return validatedVersion;
5147

52-
if (version.build !== undefined && version.build > 0) {
53-
validatedVersion += `.${version.build}`;
48+
if (Number.isInteger(version.build) && version.build >= 0) {
49+
validatedVersion += `.${version.build.toString()}`;
5450
}
5551

5652
return validatedVersion;

packages/checkout/widgets/src/definitions/config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ import { WidgetTheme } from './types';
1717
*/
1818
export type SemanticVersion = {
1919
major: number;
20-
minor: number;
21-
patch: number;
22-
prerelease: 'alpha';
20+
minor?: number;
21+
patch?: number;
22+
prerelease?: 'alpha';
2323
build?: number;
2424
};
2525

0 commit comments

Comments
 (0)