Fix and enable core unit test coverage (#18781)

* Fix and enable core unit test coverage

* switch

* Fix coverage mapping

* don't output marked

* Fix filter check
This commit is contained in:
Charles Gagnon 2022-03-21 15:15:07 -07:00 коммит произвёл GitHub
Родитель 8a670a8baa
Коммит 08b2d9668e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
7 изменённых файлов: 14 добавлений и 11 удалений

2
.github/workflows/ci.yml поставляемый
Просмотреть файл

@ -136,7 +136,7 @@ jobs:
- name: Run Unit Tests (Electron)
id: electron-unit-tests
run: DISPLAY=:10 ./scripts/test.sh --runGlob "**/sql/**/*.test.js" # {{SQL CARBON EDIT}} Run only our tests with coverage. Disable for now since it's currently broken --coverage
run: DISPLAY=:10 ./scripts/test.sh --runGlob "**/sql/**/*.test.js" --coverage
- name: Run Extension Unit Tests (Electron)
id: electron-extension-unit-tests

Просмотреть файл

@ -106,7 +106,7 @@ steps:
- script: |
set -e
./scripts/test.sh --build --tfs "Unit Tests" # Disable code coverage since it's currently broken --coverage
./scripts/test.sh --build --tfs "Unit Tests" --coverage
displayName: Run unit tests
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))

Просмотреть файл

@ -119,7 +119,7 @@ steps:
- script: |
set -e
DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests" # Disable code coverage since it's currently broken --coverage
DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests" --coverage
displayName: Run unit tests (Electron)
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))

Просмотреть файл

@ -37,9 +37,10 @@ function createCompile(src, build, emitError) {
const sourcemaps = require('gulp-sourcemaps');
const projectPath = path.join(__dirname, '../../', src, 'tsconfig.json');
const overrideOptions = Object.assign(Object.assign({}, getTypeScriptCompilerOptions(src)), { inlineSources: Boolean(build) });
if (!build) {
overrideOptions.inlineSourceMap = true;
}
// {{SQL CARBON EDIT}} Never inline source maps so that generating local coverage works
// if (!build) {
// // overrideOptions.inlineSourceMap = true;
// }
const compilation = tsb.create(projectPath, overrideOptions, false, err => reporter(err));
function pipeline(token) {
const bom = require('gulp-bom');

Просмотреть файл

@ -44,9 +44,10 @@ function createCompile(src: string, build: boolean, emitError?: boolean) {
const projectPath = path.join(__dirname, '../../', src, 'tsconfig.json');
const overrideOptions = { ...getTypeScriptCompilerOptions(src), inlineSources: Boolean(build) };
if (!build) {
overrideOptions.inlineSourceMap = true;
}
// {{SQL CARBON EDIT}} Never inline source maps so that generating local coverage works
// if (!build) {
// // overrideOptions.inlineSourceMap = true;
// }
const compilation = tsb.create(projectPath, overrideOptions, false, err => reporter(err));

Просмотреть файл

@ -964,7 +964,8 @@ export class EditorGroupView extends Themable implements IEditorGroupView {
// Determine options
const openEditorOptions: IEditorOpenOptions = {
index: options ? options.index : undefined,
pinned: options?.sticky || !this.accessor.partOptions.enablePreview || editor.isDirty() || (options?.pinned ?? typeof options?.index === 'number' /* unless specified, prefer to pin when opening with index */) || (typeof options?.index === 'number' && this.model.isSticky(options.index)),
// {{SQL CARBON EDIT}} Refactor statement to not use ?? since that breaks code coverage on unit tests
pinned: options?.sticky || !this.accessor.partOptions.enablePreview || editor.isDirty() || (options?.pinned !== null ? options?.pinned : typeof options?.index === 'number' /* unless specified, prefer to pin when opening with index */) || (typeof options?.index === 'number' && this.model.isSticky(options.index)),
sticky: options?.sticky || (typeof options?.index === 'number' && this.model.isSticky(options.index)),
active: this.count === 0 || !options || !options.inactive
};

Просмотреть файл

@ -41,7 +41,7 @@ exports.createReport = function (isSingle) {
Object.keys(transformed.data).forEach((file) => {
const entry = transformed.data[file];
const fixedPath = fixPath(entry.path);
if (fixedPath.includes('\\vs\\') || fixedPath.includes('/vs/')) { return; } // {{SQL CARBON EDIT}} skip vscode files
if (fixedPath.includes(`/vs/`) || fixedPath.includes('\\vs\\') || path.basename(fixedPath) === 'marked.js') { return; } // {{SQL CARBON EDIT}} skip vscode files and imported marked.js
entry.data.path = fixedPath;
newData[fixedPath] = entry;
});