Skip to content

Commit

Permalink
Significantly expanded the unit test coverage of the back-end.
Browse files Browse the repository at this point in the history
  • Loading branch information
mhutchie committed May 30, 2020
1 parent cd38dd4 commit f9f4757
Show file tree
Hide file tree
Showing 17 changed files with 5,813 additions and 92 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -1,3 +1,4 @@
coverage
media
node_modules
out
Expand Down
1 change: 1 addition & 0 deletions .vscodeignore
@@ -1,5 +1,6 @@
.github/
.vscode/
coverage/
node_modules/*/*.md
out/**/*.d.ts
out/**/*.js.map
Expand Down
5 changes: 4 additions & 1 deletion jest.config.js
Expand Up @@ -9,5 +9,8 @@ module.exports = {
'ts-jest': {
tsConfig: './tests/tsconfig.json'
}
}
},
collectCoverageFrom: [
"src/*.ts"
]
};
3 changes: 2 additions & 1 deletion package.json
Expand Up @@ -819,7 +819,8 @@
"compile-web-debug": "tsc -p ./web && node ./.vscode/package-web.js debug",
"package": "npm run clean && vsce package",
"package-and-install": "npm run package && node ./.vscode/install-package.js",
"test": "jest --verbose"
"test": "jest --verbose",
"test-and-report-coverage": "jest --verbose --coverage"
},
"dependencies": {
"iconv-lite": "0.5.0"
Expand Down
2 changes: 1 addition & 1 deletion src/extension.ts
Expand Up @@ -42,7 +42,7 @@ export async function activate(context: vscode.ExtensionContext) {
const dataSource = new DataSource(gitExecutable, onDidChangeConfiguration, onDidChangeGitExecutable, logger);
const avatarManager = new AvatarManager(dataSource, extensionState, logger);
const repoManager = new RepoManager(dataSource, extensionState, onDidChangeConfiguration, logger);
const statusBarItem = new StatusBarItem(repoManager, onDidChangeConfiguration, logger);
const statusBarItem = new StatusBarItem(repoManager.getNumRepos(), repoManager.onDidChangeRepos, onDidChangeConfiguration, logger);
const commandManager = new CommandManager(context.extensionPath, avatarManager, dataSource, extensionState, repoManager, gitExecutable, onDidChangeGitExecutable, logger);

context.subscriptions.push(
Expand Down
12 changes: 10 additions & 2 deletions src/repoManager.ts
Expand Up @@ -8,7 +8,7 @@ import { Logger } from './logger';
import { GitRepoSet, GitRepoState } from './types';
import { evalPromises, getPathFromUri, pathWithTrailingSlash, realpath } from './utils';

interface RepoChangeEvent {
export interface RepoChangeEvent {
repos: GitRepoSet;
numRepos: number;
loadRepo: string | null;
Expand Down Expand Up @@ -199,6 +199,14 @@ export class RepoManager implements vscode.Disposable {
return repos;
}

/**
* Get the number of all known repositories in the current workspace.
* @returns The number of repositories.
*/
public getNumRepos() {
return Object.keys(this.repos).length;
}

/**
* Get the repository that contains the specified file.
* @param path The path of the file.
Expand Down Expand Up @@ -318,7 +326,7 @@ export class RepoManager implements vscode.Disposable {
private sendRepos(loadRepo: string | null = null) {
this.repoEventEmitter.emit({
repos: this.getRepos(),
numRepos: Object.keys(this.repos).length,
numRepos: this.getNumRepos(),
loadRepo: loadRepo
});
}
Expand Down
8 changes: 4 additions & 4 deletions src/statusBarItem.ts
Expand Up @@ -2,7 +2,7 @@ import * as vscode from 'vscode';
import { getConfig } from './config';
import { Event } from './event';
import { Logger } from './logger';
import { RepoManager } from './repoManager';
import { RepoChangeEvent } from './repoManager';

/**
* Manages the Git Graph Status Bar Item, which allows users to open the Git Graph View from the Visual Studio Code Status Bar.
Expand All @@ -19,7 +19,7 @@ export class StatusBarItem implements vscode.Disposable {
* @param repoManager The Git Graph RepoManager instance.
* @param logger The Git Graph Logger instance.
*/
constructor(repoManager: RepoManager, onDidChangeConfiguration: Event<vscode.ConfigurationChangeEvent>, logger: Logger) {
constructor(initialNumRepos: number, onDidChangeRepos: Event<RepoChangeEvent>, onDidChangeConfiguration: Event<vscode.ConfigurationChangeEvent>, logger: Logger) {
this.logger = logger;

const statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left, 1);
Expand All @@ -29,7 +29,7 @@ export class StatusBarItem implements vscode.Disposable {
this.statusBarItem = statusBarItem;
this.disposables.push(statusBarItem);

repoManager.onDidChangeRepos((event) => {
onDidChangeRepos((event) => {
this.setNumRepos(event.numRepos);
}, this.disposables);

Expand All @@ -39,7 +39,7 @@ export class StatusBarItem implements vscode.Disposable {
}
}, this.disposables);

this.setNumRepos(Object.keys(repoManager.getRepos()).length);
this.setNumRepos(initialNumRepos);
}

/**
Expand Down

0 comments on commit f9f4757

Please sign in to comment.