Skip to content

Commit

Permalink
add readme and update test units
Browse files Browse the repository at this point in the history
  • Loading branch information
Arylo committed Dec 3, 2018
1 parent 0f555f0 commit f17e282
Show file tree
Hide file tree
Showing 6 changed files with 123 additions and 15 deletions.
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,36 @@ Operating on the NODE_ENV environmental variable

## Usage

### CONST

```javascript
const { ENV } = require("node-env-manager");

ENV.PROD // -> "production"
ENV.DEV // -> "development"
ENV.LOCAL // -> "local"
ENV.TEST // -> "test"
ENV.EXP // ->"experience"
ENV.EXP // -> "experience"
ENV.GRAY // -> "gray"
ENV.CI // -> "ci"
```

### Mothods

```javascript
const env = require("node-env-manager");

env.init(); // set `process.env.NODE_ENV` value if this is null
env.set(); // set `process.env.NODE_ENV` value
env.get(); // get `process.env.NODE_ENV` value

env.isLocal();
env.isTest();
env.isDev();
env.isProd();
env.isExp();
env.isGray();
env.isCI();
```

[NPM_URL]: https://img.shields.io/node/v/node-env-manager.svg?style=flat-square&maxAge=600
Expand Down
7 changes: 4 additions & 3 deletions lib/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,10 @@ export const get = () => {
* @param env {string}
*/
export const set = (env: ENV | string) => {
if (typeof env === "string") {
env = env.trim().toLowerCase();
if (typeof env !== "string") {
return false;
}
env = env.trim().toLowerCase();
process.env.NODE_ENV = env;
return true;
};
Expand Down Expand Up @@ -137,7 +138,7 @@ export const isGray = () => {
* 是否CI 环境
* @returns boolean
*/
export const isCi = () => {
export const isCI = () => {
let env = process.env.NODE_ENV;
if (typeof env !== "string") {
return false;
Expand Down
15 changes: 15 additions & 0 deletions test/get.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import test from "ava";
import * as env from "../lib";

test.beforeEach(() => {
delete process.env.NODE_ENV;
});

test((t) => {
process.env.NODE_ENV = env.ENV.PROD;
t.is(env.get(), env.ENV.PROD);
});

test((t) => {
t.is(env.get(), undefined);
});
16 changes: 5 additions & 11 deletions test/index.spec.ts → test/init.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,15 @@ test.beforeEach(() => {
delete process.env.NODE_ENV;
});

test((t) => {
env.init();
test("Default", (t) => {
t.true(env.init());
t.true(env.isDev());
});

test((t) => {
process.env.NODE_ENV = "test";
env.init();
t.false(env.isDev());
process.env.NODE_ENV = env.ENV.TEST;
t.false(env.init());
t.true(env.isTest());
});

test((t) => {
env.init("test");
t.false(env.isDev());
env.set("dev");
t.true(env.isDev());
t.true(env.isTest());
});
68 changes: 68 additions & 0 deletions test/is.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import test from "ava";
import * as env from "../lib";

test.beforeEach(() => {
delete process.env.NODE_ENV;
});

test((t) => {
process.env.NODE_ENV = env.ENV.PROD;
t.true(env.isProd());
});

test((t) => {
t.false(env.isProd());
});

test((t) => {
process.env.NODE_ENV = env.ENV.DEV;
t.true(env.isDev());
});
test((t) => {
t.false(env.isDev());
});

test((t) => {
process.env.NODE_ENV = env.ENV.LOCAL;
t.true(env.isLocal());
});

test((t) => {
t.false(env.isLocal());
});

test((t) => {
process.env.NODE_ENV = env.ENV.TEST;
t.true(env.isTest());
});

test((t) => {
t.false(env.isTest());
});

test((t) => {
process.env.NODE_ENV = env.ENV.EXP;
t.true(env.isExp());
});

test((t) => {
t.false(env.isExp());
});

test((t) => {
process.env.NODE_ENV = env.ENV.GRAY;
t.true(env.isGray());
});

test((t) => {
t.false(env.isGray());
});

test((t) => {
process.env.NODE_ENV = env.ENV.CI;
t.true(env.isCI());
});

test((t) => {
t.false(env.isCI());
});
11 changes: 11 additions & 0 deletions test/set.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import test from "ava";
import * as env from "../lib";

test.beforeEach(() => {
delete process.env.NODE_ENV;
});

test((t) => {
t.true(env.set(env.ENV.DEV));
t.true(env.isDev());
});

0 comments on commit f17e282

Please sign in to comment.