Skip to content

Commit 70c4f94

Browse files
committed
feat: set cloud provider to AWS for Hako apps
This updates our cloud provider detection to assume AWS if the `HAKO_SERVICE_URL` environment variable is set. At present, the cloud provider will be `null` for Hako apps.
1 parent 0d978cc commit 70c4f94

File tree

2 files changed

+38
-15
lines changed

2 files changed

+38
-15
lines changed

packages/app-info/lib/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const processType =
5858
* Returns the cloud provider type (either aws or heroku).
5959
*/
6060
const cloudProvider = () => {
61-
if (process.env.AWS_LAMBDA_FUNCTION_NAME) {
61+
if (process.env.AWS_LAMBDA_FUNCTION_NAME || process.env.HAKO_SERVICE_URL) {
6262
return 'aws';
6363
}
6464
if (process.env.HEROKU_RELEASE_CREATED_AT) {

packages/app-info/test/unit/lib/index.spec.js

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ describe('@dotcom-reliability-kit/app-info', () => {
66
beforeEach(() => {
77
jest.spyOn(process, 'cwd').mockReturnValue('/mock-cwd');
88
process.env.AWS_LAMBDA_FUNCTION_VERSION = 'mock-aws-release-version';
9-
process.env.AWS_LAMBDA_FUNCTION_NAME = 'mock-aws-process-type';
9+
process.env.AWS_LAMBDA_FUNCTION_NAME = 'mock-lambda-function-name';
1010
process.env.AWS_REGION = 'mock-aws-region';
1111
process.env.GIT_COMMIT = 'mock-git-commit';
1212
process.env.GIT_COMMIT_LONG = 'mock-git-commit-long';
@@ -341,7 +341,7 @@ describe('@dotcom-reliability-kit/app-info', () => {
341341

342342
describe('.processType', () => {
343343
it('is set to `process.env.AWS_LAMBDA_FUNCTION_NAME`', () => {
344-
expect(appInfo.processType).toBe('mock-aws-process-type');
344+
expect(appInfo.processType).toBe('mock-lambda-function-name');
345345
});
346346

347347
describe('when `process.env.DYNO` is defined and `process.env.AWS_LAMBDA_FUNCTION_NAME` is not', () => {
@@ -371,28 +371,51 @@ describe('@dotcom-reliability-kit/app-info', () => {
371371
});
372372

373373
describe('.cloudProvider', () => {
374-
it('is set to `aws` if processType is set to `process.env.AWS_LAMBDA_FUNCTION_NAME`', () => {
375-
if (appInfo.processType === process.env.AWS_LAMBDA_FUNCTION_NAME) {
374+
beforeEach(() => {
375+
jest.resetModules();
376+
delete process.env.AWS_LAMBDA_FUNCTION_NAME;
377+
delete process.env.HEROKU_RELEASE_CREATED_AT;
378+
delete process.env.HAKO_SERVICE_URL;
379+
appInfo = require('../../../lib');
380+
});
381+
382+
it('is set to null', () => {
383+
expect(appInfo.cloudProvider).toBe(null);
384+
});
385+
386+
describe('when `process.env.AWS_LAMBDA_FUNCTION_NAME` is defined', () => {
387+
beforeEach(() => {
388+
jest.resetModules();
389+
process.env.AWS_LAMBDA_FUNCTION_NAME = 'mock-lambda-function-name';
390+
appInfo = require('../../../lib');
391+
});
392+
393+
it('is set to "aws"', () => {
376394
expect(appInfo.cloudProvider).toBe('aws');
377-
}
395+
});
378396
});
379397

380-
it('is set to `heroku` if `process.env.HEROKU_RELEASE_CREATED_AT` is set to true', () => {
381-
if (process.env.HEROKU_RELEASE_CREATED_AT) {
382-
expect(appInfo.cloudProvider).toBe('heroku');
383-
}
398+
describe('when `process.env.HAKO_SERVICE_URL` is defined', () => {
399+
beforeEach(() => {
400+
jest.resetModules();
401+
process.env.HAKO_SERVICE_URL = 'mock-hako-service-url';
402+
appInfo = require('../../../lib');
403+
});
404+
405+
it('is set to "aws"', () => {
406+
expect(appInfo.cloudProvider).toBe('aws');
407+
});
384408
});
385409

386-
describe('when neither `process.env.AWS_LAMBDA_FUNCTION_NAME` or `process.env.HEROKU_RELEASE_CREATED_AT` are defined', () => {
410+
describe('when `process.env.HEROKU_RELEASE_CREATED_AT` is defined', () => {
387411
beforeEach(() => {
388412
jest.resetModules();
389-
delete process.env.HEROKU_RELEASE_CREATED_AT;
390-
delete process.env.AWS_LAMBDA_FUNCTION_NAME;
413+
process.env.HEROKU_RELEASE_CREATED_AT = 'mock-release-created-at';
391414
appInfo = require('../../../lib');
392415
});
393416

394-
it('is set to null', () => {
395-
expect(appInfo.cloudProvider).toBe(null);
417+
it('is set to "heroku"', () => {
418+
expect(appInfo.cloudProvider).toBe('heroku');
396419
});
397420
});
398421
});

0 commit comments

Comments
 (0)