skopix 2.0.61 → 2.0.62

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.
@@ -3956,21 +3956,23 @@ async function startStepTester(testerId, url, selector, mode, steps) {
3956
3956
  await ctx.exposeFunction('__skopixPreviewRun', async ({ index }) => {
3957
3957
  const s = steps[index];
3958
3958
  if (!s) return;
3959
- await page.evaluate((i, status) => { if(window.__skopixUpdatePreview) window.__skopixUpdatePreview(i, null, status); }, index, `Running step ${index+1}/${steps.length}...`).catch(()=>{});
3959
+ await page.evaluate(({ i, status }) => { if(window.__skopixUpdatePreview) window.__skopixUpdatePreview(i, null, status); }, { i: index, status: `Running step ${index+1}/${steps.length}...` }).catch(()=>{});
3960
3960
  const result = await executeStepTesterAction(page, { selector: s.stableSelector||s.selector, action: s.action, value: s.value||'', assertType: s.assertType });
3961
- await page.evaluate((i, r, total) => {
3962
- if(window.__skopixUpdatePreview) window.__skopixUpdatePreview(i, r, r.passed ? (i+1 >= total ? `✓ All ${total} steps passed!` : `✓ Step ${i+1} passed`) : `✗ Step ${i+1} failed`);
3963
- }, index, result, steps.length).catch(()=>{});
3961
+ const msg = result.passed ? (index+1 >= steps.length ? `✓ All ${steps.length} steps passed!` : `✓ Step ${index+1} passed`) : `✗ Step ${index+1} failed`;
3962
+ await page.evaluate(({ i, r, msg }) => {
3963
+ if(window.__skopixUpdatePreview) window.__skopixUpdatePreview(i, r, msg);
3964
+ }, { i: index, r: { passed: result.passed, error: result.error||null }, msg }).catch(()=>{});
3964
3965
  });
3965
3966
 
3966
3967
  await ctx.exposeFunction('__skopixPreviewRunAll', async ({ fromIndex }) => {
3967
3968
  for (let i = fromIndex; i < steps.length; i++) {
3968
3969
  const s = steps[i];
3969
- await page.evaluate((i, total) => { if(window.__skopixUpdatePreview) window.__skopixUpdatePreview(i, null, `Running step ${i+1}/${total}...`); }, i, steps.length).catch(()=>{});
3970
+ await page.evaluate(({ i, total }) => { if(window.__skopixUpdatePreview) window.__skopixUpdatePreview(i, null, `Running step ${i+1}/${total}...`); }, { i, total: steps.length }).catch(()=>{});
3970
3971
  const result = await executeStepTesterAction(page, { selector: s.stableSelector||s.selector, action: s.action, value: s.value||'', assertType: s.assertType });
3971
- await page.evaluate((i, r, total) => {
3972
- if(window.__skopixUpdatePreview) window.__skopixUpdatePreview(i, r, r.passed ? (i+1 >= total ? `✓ All ${total} steps passed!` : `Running...`) : `✗ Step ${i+1} failed — fix and retry`);
3973
- }, i, result, steps.length).catch(()=>{});
3972
+ const msg = result.passed ? (i+1 >= steps.length ? `✓ All ${steps.length} steps passed!` : `Running...`) : `✗ Step ${i+1} failed — fix and retry`;
3973
+ await page.evaluate(({ i, r, msg }) => {
3974
+ if(window.__skopixUpdatePreview) window.__skopixUpdatePreview(i, r, msg);
3975
+ }, { i, r: { passed: result.passed, error: result.error||null }, msg }).catch(()=>{});
3974
3976
  if (!result.passed) break;
3975
3977
  await new Promise(r => setTimeout(r, 400));
3976
3978
  }
@@ -4093,17 +4095,17 @@ async function startStepTester(testerId, url, selector, mode, steps) {
4093
4095
  // STEP TESTER MODE — register expose functions FIRST
4094
4096
  await ctx.exposeFunction('__skopixTesterRun', async ({ sel, action, value }) => {
4095
4097
  const result = await executeStepTesterAction(page, { selector: sel, action, value });
4096
- await page.evaluate((passed, errMsg) => {
4098
+ await page.evaluate(({ passed }) => {
4097
4099
  const el = document.getElementById('__skopix_result');
4098
4100
  if (el) { el.textContent = passed ? '✓' : '✗'; el.style.color = passed ? '#34d399' : '#ef4444'; }
4099
- }, result.passed, result.error || '').catch(async () => {
4101
+ }, { passed: result.passed }).catch(async () => {
4100
4102
  await new Promise(r => setTimeout(r, 500));
4101
- await page.evaluate((passed) => {
4103
+ await page.evaluate(({ passed }) => {
4102
4104
  const el = document.getElementById('__skopix_result');
4103
4105
  if (el) { el.textContent = passed ? '✓' : '✗'; el.style.color = passed ? '#34d399' : '#ef4444'; }
4104
- }, result.passed).catch(() => {});
4106
+ }, { passed: result.passed }).catch(() => {});
4105
4107
  });
4106
- await page.evaluate((passed, sel) => {
4108
+ await page.evaluate(({ passed, sel }) => {
4107
4109
  try {
4108
4110
  const target = document.querySelector(sel);
4109
4111
  if (target) {
@@ -4112,7 +4114,7 @@ async function startStepTester(testerId, url, selector, mode, steps) {
4112
4114
  setTimeout(() => { target.style.outline = orig; }, 1500);
4113
4115
  }
4114
4116
  } catch {}
4115
- }, result.passed, sel).catch(() => {});
4117
+ }, { passed: result.passed, sel }).catch(() => {});
4116
4118
  });
4117
4119
 
4118
4120
  await ctx.exposeFunction('__skopixTesterStop', async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skopix",
3
- "version": "2.0.61",
3
+ "version": "2.0.62",
4
4
  "description": "Browser-based QA tool — record tests by using your app, replay them deterministically, generate Playwright code automatically",
5
5
  "main": "cli/index.js",
6
6
  "bin": {