Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
90 changes: 90 additions & 0 deletions app/components/UI/Ramp/Deposit/sdk/getSdkEnvironment.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import { SdkEnvironment } from '@consensys/native-ramps-sdk';
import { getSdkEnvironment } from './getSdkEnvironment';

describe('getSdkEnvironment', () => {
const originalEnv = process.env.METAMASK_ENVIRONMENT;

afterEach(() => {
process.env.METAMASK_ENVIRONMENT = originalEnv;
});

describe('Production Environment', () => {
it('returns Production for production environment', () => {
process.env.METAMASK_ENVIRONMENT = 'production';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Production);
});

it('returns Production for beta environment', () => {
process.env.METAMASK_ENVIRONMENT = 'beta';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Production);
});

it('returns Production for rc environment', () => {
process.env.METAMASK_ENVIRONMENT = 'rc';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Production);
});
});

describe('Staging Environment', () => {
it('returns Staging for dev environment', () => {
process.env.METAMASK_ENVIRONMENT = 'dev';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});

it('returns Staging for exp environment', () => {
process.env.METAMASK_ENVIRONMENT = 'exp';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});

it('returns Staging for test environment', () => {
process.env.METAMASK_ENVIRONMENT = 'test';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});

it('returns Staging for e2e environment', () => {
process.env.METAMASK_ENVIRONMENT = 'e2e';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});
});

describe('Default/Unknown Environment', () => {
it('returns Staging for undefined environment', () => {
delete process.env.METAMASK_ENVIRONMENT;
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});

it('returns Staging for unknown environment value', () => {
process.env.METAMASK_ENVIRONMENT = 'unknown-env';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});

it('returns Staging for empty string environment', () => {
process.env.METAMASK_ENVIRONMENT = '';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});
});

describe('Edge Cases', () => {
it('handles case sensitivity correctly', () => {
process.env.METAMASK_ENVIRONMENT = 'PRODUCTION';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});

it('handles whitespace in environment value', () => {
process.env.METAMASK_ENVIRONMENT = ' production ';
const result = getSdkEnvironment();
expect(result).toBe(SdkEnvironment.Staging);
});
});
});
18 changes: 18 additions & 0 deletions app/components/UI/Ramp/Deposit/sdk/getSdkEnvironment.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { SdkEnvironment } from '@consensys/native-ramps-sdk';

export function getSdkEnvironment() {
const metamaskEnvironment = process.env.METAMASK_ENVIRONMENT;
switch (metamaskEnvironment) {
case 'production':
case 'beta':
case 'rc':
return SdkEnvironment.Production;

case 'dev':
case 'exp':
case 'test':
case 'e2e':
default:
return SdkEnvironment.Staging;
}
}
13 changes: 2 additions & 11 deletions app/components/UI/Ramp/Deposit/sdk/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import { selectDepositProviderApiKey } from '../../../../../selectors/featureFla
import {
NativeRampsSdk,
NativeTransakAccessToken,
SdkEnvironment,
Context,
DepositPaymentMethod,
DepositRegion,
Expand All @@ -24,6 +23,7 @@ import {
resetProviderToken,
storeProviderToken,
} from '../utils/ProviderTokenVault';
import { getSdkEnvironment } from './getSdkEnvironment';
import {
fiatOrdersGetStartedDeposit,
setFiatOrdersGetStartedDeposit,
Expand Down Expand Up @@ -58,16 +58,7 @@ export interface DepositSDK {
setSelectedCryptoCurrency: (cryptoCurrency: DepositCryptoCurrency) => void;
}

const isDevelopment =
process.env.NODE_ENV !== 'production' ||
process.env.RAMP_DEV_BUILD === 'true';
const isInternalBuild = process.env.RAMP_INTERNAL_BUILD === 'true';
const isDevelopmentOrInternalBuild = isDevelopment || isInternalBuild;

let environment = SdkEnvironment.Production;
if (isDevelopmentOrInternalBuild) {
environment = SdkEnvironment.Staging;
}
const environment = getSdkEnvironment();

const context =
Platform.OS === 'ios' ? Context.MobileIOS : Context.MobileAndroid;
Expand Down
2 changes: 2 additions & 0 deletions babel.config.tests.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ const newOverrides = [
'app/core/Engine/controllers/network-controller/utils.test.ts',
'app/core/Engine/controllers/gator-permissions-controller/gator-permissions-controller-init.ts',
'app/core/Engine/controllers/gator-permissions-controller/gator-permissions-controller-init.test.ts',
'app/components/UI/Ramp/Deposit/sdk/getSdkEnvironment.ts',
'app/components/UI/Ramp/Deposit/sdk/getSdkEnvironment.test.ts',
'app/components/UI/Ramp/Aggregator/sdk/getSdkEnvironment.ts',
'app/components/UI/Ramp/Aggregator/sdk/getSdkEnvironment.test.ts',
'app/store/migrations/**',
Expand Down
Loading