@botonic/cli 0.43.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,65 @@
1
+ import { BotCredentialsHandler, CredentialsHandler, } from '../../src/util/credentials-handler.js';
2
+ import { createTempDir, pathExists, removeRecursively, } from '../../src/util/file-system.js';
3
+ describe('TEST: CredentialsHandler', () => {
4
+ let tempDir = '';
5
+ let credentialsHandler;
6
+ beforeEach(() => {
7
+ tempDir = createTempDir('botonic-tmp');
8
+ credentialsHandler = new CredentialsHandler({
9
+ homeDir: tempDir,
10
+ filename: '.botonic-credentials',
11
+ });
12
+ });
13
+ afterEach(() => {
14
+ removeRecursively(tempDir);
15
+ });
16
+ it('Initializes correctly the given path', () => {
17
+ const sut = pathExists(credentialsHandler.homeDir);
18
+ expect(sut).toBeTruthy();
19
+ });
20
+ it('Loads/Dumps correctly the data', () => {
21
+ expect(pathExists(credentialsHandler.pathToCredentials)).toBeFalsy();
22
+ credentialsHandler.dumpJSON({ dummy: 'content' });
23
+ expect(pathExists(credentialsHandler.pathToCredentials)).toBeTruthy();
24
+ const content = credentialsHandler.loadJSON();
25
+ expect(content?.dummy).toEqual('content');
26
+ });
27
+ });
28
+ describe('TEST: BotCredentialsHandler', () => {
29
+ let botCredentialsHandler;
30
+ beforeEach(() => {
31
+ botCredentialsHandler = new BotCredentialsHandler();
32
+ });
33
+ afterEach(() => {
34
+ removeRecursively(botCredentialsHandler.pathToCredentials);
35
+ });
36
+ it('Initializes correctly', () => {
37
+ const sut = pathExists(botCredentialsHandler.homeDir);
38
+ expect(sut).toBeTruthy();
39
+ });
40
+ it('Loads/Dumps correctly', () => {
41
+ expect(botCredentialsHandler.load()).toBeFalsy();
42
+ const botInfo = {
43
+ bot: {
44
+ id: '1234',
45
+ name: 'bot-name',
46
+ organization: 'org-id',
47
+ last_update: {
48
+ version: '',
49
+ created_at: '',
50
+ modified_at: '',
51
+ published_at: '',
52
+ comment: '',
53
+ },
54
+ created_at: '2020-12-18T15:57:49.871489Z',
55
+ provider_accounts: [],
56
+ is_debug: false,
57
+ is_published: true,
58
+ active_users: 1,
59
+ },
60
+ };
61
+ botCredentialsHandler.dump(botInfo);
62
+ expect(botCredentialsHandler.load()).toMatchObject(botInfo);
63
+ });
64
+ });
65
+ //# sourceMappingURL=credentials-handler.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials-handler.test.js","sourceRoot":"","sources":["../../../tests/util/credentials-handler.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,78 @@
1
+ import { readFileSync, writeFileSync } from 'fs';
2
+ import { join } from 'path';
3
+ import { createDir, createTempDir, copyRecursively, pathExists, readDir, readJSON, removeRecursively, writeJSON, } from '../../src/util/file-system.js';
4
+ import { execCommandSafe } from '../../src/util/system.js';
5
+ const createFile = (path, content) => {
6
+ writeFileSync(path, content, { encoding: 'utf-8' });
7
+ };
8
+ describe('TEST: File System utilities', () => {
9
+ const existingPath = process.cwd();
10
+ const unexistingPath = 'unexistingPath';
11
+ let tempDir;
12
+ beforeEach(() => {
13
+ tempDir = createTempDir('botonic-tmp');
14
+ });
15
+ afterEach(() => {
16
+ removeRecursively(tempDir);
17
+ });
18
+ it('Checks an existing path', () => {
19
+ const sut = pathExists(existingPath);
20
+ expect(sut).toBeTruthy();
21
+ });
22
+ it('Check an unexisting path', () => {
23
+ const sut = pathExists(unexistingPath);
24
+ expect(sut).toBeFalsy();
25
+ });
26
+ it('Reads content from path', () => {
27
+ const sut = Array.isArray(readDir(existingPath));
28
+ expect(sut).toBe(true);
29
+ });
30
+ it('Reads content from unexisting path', () => {
31
+ const sut = () => readDir(unexistingPath);
32
+ expect(sut).toThrow();
33
+ });
34
+ it('Removes folders from existing path', () => {
35
+ const sut = pathExists(tempDir);
36
+ expect(sut).toBe(true);
37
+ });
38
+ it('Removes folders from unexisting path', () => {
39
+ const sut = () => removeRecursively(unexistingPath);
40
+ expect(sut()).toBeFalsy();
41
+ });
42
+ it('Creates a directory in the given path', () => {
43
+ const sut = pathExists(tempDir);
44
+ expect(sut).toBe(true);
45
+ });
46
+ it('Creates a directory in the given path (already exists)', () => {
47
+ const sut = () => createDir(tempDir);
48
+ expect(sut).toThrow();
49
+ });
50
+ it('Copy content recursively', () => {
51
+ const tmp1 = createTempDir('botonic-tmp1');
52
+ createFile(join(tmp1, 'dummy-file.txt'), 'dummy content');
53
+ const tmp2 = createTempDir('botonic-tmp2');
54
+ copyRecursively(tmp1, tmp2);
55
+ expect(readDir(tmp2)).toContain('dummy-file.txt');
56
+ removeRecursively(tmp1);
57
+ removeRecursively(tmp2);
58
+ });
59
+ it('Creates a temporary directory', () => {
60
+ const sut = pathExists(tempDir);
61
+ expect(sut).toBe(true);
62
+ expect.stringMatching(/botonic-tmp*/);
63
+ });
64
+ it('Reads/Writes JSON correctly', () => {
65
+ const path = join(tempDir, 'dummy.json');
66
+ writeJSON(path, {
67
+ dummy: 'content',
68
+ });
69
+ const writtenContent = String(readFileSync(path));
70
+ expect(writtenContent).toEqual('{"dummy":"content"}');
71
+ const readContent = readJSON(path);
72
+ expect(readContent).toEqual({ dummy: 'content' });
73
+ execCommandSafe(`touch ${tempDir}/another.json`);
74
+ const noContent = readJSON(join(tempDir, 'another.json'));
75
+ expect(noContent).toBeUndefined();
76
+ });
77
+ });
78
+ //# sourceMappingURL=file-system.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-system.test.js","sourceRoot":"","sources":["../../../tests/util/file-system.test.ts"],"names":[],"mappings":"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"}