Compare commits

..

1 Commits

Author SHA1 Message Date
Simon Genin (ges) 2042f2ec01 [IMP] release: add coverage report to gh pages. 2021-10-02 15:49:01 +02:00
5 changed files with 54 additions and 12 deletions
+3 -1
View File
@@ -31,4 +31,6 @@ release-notes.md
.rpt2_cache .rpt2_cache
# useful in some cases # useful in some cases
/temp /temp
coverage
+3 -1
View File
@@ -76,7 +76,9 @@
"jsx", "jsx",
"json", "json",
"node" "node"
] ],
"collectCoverage": true,
"coverageReporters": ["html"]
}, },
"prettier": { "prettier": {
"printWidth": 100, "printWidth": 100,
+5 -5
View File
@@ -420,29 +420,29 @@ describe("animations", () => {
widget.state.flag = true; widget.state.flag = true;
await nextFrame(3); await nextFrame();
widget.el!.querySelector("span")!.dispatchEvent(new Event("transitionend")); widget.el!.querySelector("span")!.dispatchEvent(new Event("transitionend"));
expect(fixture.innerHTML).toBe('<div><span class="">blue</span></div>'); expect(fixture.innerHTML).toBe('<div><span class="">blue</span></div>');
expect(QWeb.utils.transitionInsert).toBeCalledTimes(1); expect(QWeb.utils.transitionInsert).toBeCalledTimes(1);
widget.state.flag = false; widget.state.flag = false;
await nextFrame(3); await nextFrame();
expect(fixture.innerHTML).toBe( expect(fixture.innerHTML).toBe(
'<div><span class="chimay-leave-active chimay-leave-to" data-owl-key="__3__">blue</span></div>' '<div><span class="chimay-leave-active chimay-leave-to" data-owl-key="__3__">blue</span></div>'
); );
expect(QWeb.utils.transitionInsert).toBeCalledTimes(1); expect(QWeb.utils.transitionInsert).toBeCalledTimes(1);
widget.state.flag = true; widget.state.flag = true;
await nextFrame(3); await nextFrame();
expect(fixture.innerHTML).toBe( expect(fixture.innerHTML).toBe(
'<div><span class="chimay-enter-active chimay-enter-to" data-owl-key="__3__">blue</span></div>' '<div><span class="chimay-enter-active chimay-enter-to" data-owl-key="__3__">blue</span></div>'
); );
expect(QWeb.utils.transitionInsert).toBeCalledTimes(2); expect(QWeb.utils.transitionInsert).toBeCalledTimes(2);
widget.state.flag = false; widget.state.flag = false;
await nextFrame(3); await nextFrame();
widget.state.flag = true; widget.state.flag = true;
await nextFrame(3); await nextFrame();
expect(QWeb.utils.transitionInsert).toBeCalledTimes(3); expect(QWeb.utils.transitionInsert).toBeCalledTimes(3);
widget.el!.querySelector("span")!.dispatchEvent(new Event("transitionend")); widget.el!.querySelector("span")!.dispatchEvent(new Event("transitionend"));
+3 -4
View File
@@ -41,10 +41,9 @@ export async function nextTick(): Promise<void> {
await new Promise((resolve) => scheduler.requestAnimationFrame(resolve)); await new Promise((resolve) => scheduler.requestAnimationFrame(resolve));
} }
export async function nextFrame(numberOfAnimationFrames: number = 2): Promise<void> { export async function nextFrame(): Promise<void> {
for (let i = 0; i < numberOfAnimationFrames; i++) { await new Promise((resolve) => scheduler.requestAnimationFrame(resolve));
await new Promise((resolve) => scheduler.requestAnimationFrame(resolve)); await new Promise((resolve) => scheduler.requestAnimationFrame(resolve));
}
} }
export function makeTestFixture() { export function makeTestFixture() {
+40 -1
View File
@@ -62,6 +62,9 @@ async function startRelease() {
} }
let shouldUploadPlayground = await ask(`Should this release be uploaded on the playground [y/n] ? (y)`); let shouldUploadPlayground = await ask(`Should this release be uploaded on the playground [y/n] ? (y)`);
shouldUploadPlayground = shouldUploadPlayground.toLowerCase() !== 'n'; shouldUploadPlayground = shouldUploadPlayground.toLowerCase() !== 'n';
let shouldUploadPCoverageReport = await ask(`Should this release coverage report be published [y/n] ? (y)`);
shouldUploadPCoverageReport = shouldUploadPCoverageReport.toLowerCase() !== 'n';
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
log(`Step 2/${STEPS}: running tests...`); log(`Step 2/${STEPS}: running tests...`);
@@ -122,7 +125,7 @@ async function startRelease() {
if (shouldUploadPlayground) { if (shouldUploadPlayground) {
log(`Bonus step: publishing new release on playground...`); log(`Bonus step: publishing new release on playground...`);
let owl_code = null; let owl_code = null;
status = 0 let status = 0
try { try {
owl_code = await readFile("dist/owl.iife.js"); owl_code = await readFile("dist/owl.iife.js");
@@ -153,6 +156,42 @@ async function startRelease() {
logError("Something went wrong for the playground update.") logError("Something went wrong for the playground update.")
} }
} }
if (shouldUploadPCoverageReport) {
let status = 0
log(`Bonus step: publishing new coverage report...`);
if (!fs.existsSync("./coverage")) {
logError("Couldn't update coverage report, there is no coverage folder on master.")
return;
}
status += await execCommand("git stash push -a -- coverage");
if (status !== 0) {
logError("Couldn't stash coverage")
return;
}
status += await execCommand("git checkout gh-pages");
if (status !== 0) {
logError("Couldn't switch to gh-pages branch")
return;
}
status += await execCommand("rm -rf coverage");
status += await execCommand("git stash pop");
status += await execCommand("git add coverage");
status += await execCommand(`git commit -m "[IMP] update coverage report for owl v${next}"`);
status += await execCommand(`git push origin gh-pages`);
status += await execCommand("git checkout -");
if (status !== 0) {
logError("Something went wrong for the coverage report update.")
}
}
} }
// ----------------------------------------------------------------------------- // -----------------------------------------------------------------------------