lib-e2e-cypress-for-dummys-ts 0.8.0 → 0.9.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.
- package/README.md +1 -34
- package/dist/{chunk-FDMUIHDZ.js → chunk-CQEDHL7A.js} +1 -1
- package/dist/chunk-CQEDHL7A.js.map +1 -0
- package/dist/index.cjs +353 -736
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +18 -140
- package/dist/index.d.ts +18 -140
- package/dist/index.js +355 -725
- package/dist/index.js.map +1 -1
- package/dist/selector-picker-JM5HID3Z.js +7 -0
- package/package.json +74 -81
- package/dist/chunk-FDMUIHDZ.js.map +0 -1
- package/dist/selector-picker-NKYFFFGK.js +0 -7
- /package/dist/{selector-picker-NKYFFFGK.js.map → selector-picker-JM5HID3Z.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -153,48 +153,6 @@ declare const RESUME_TTL_CONFIG_KEY = "resumeRecencyTtlMinutes";
|
|
|
153
153
|
/** Default minutes within which an active session resumes silently. */
|
|
154
154
|
declare const DEFAULT_RESUME_TTL_MINUTES = 30;
|
|
155
155
|
|
|
156
|
-
/**
|
|
157
|
-
* Issue-tracker presets for the *link-only* ticket reference (spec 014).
|
|
158
|
-
*
|
|
159
|
-
* These are static, data-driven descriptors — there is NO API call, no auth and
|
|
160
|
-
* no synchronisation. A provider only knows how to turn a ticket id plus a few
|
|
161
|
-
* user-supplied fields into a deep link. Adding a new tracker is a single entry
|
|
162
|
-
* in {@link ISSUE_TRACKER_PROVIDERS}; no new code paths are required.
|
|
163
|
-
*/
|
|
164
|
-
/** A single user-configured field a provider needs to build its links. */
|
|
165
|
-
interface IssueTrackerField {
|
|
166
|
-
/** Token used in {@link IssueTrackerProvider.urlTemplate}, e.g. `org`. */
|
|
167
|
-
key: string;
|
|
168
|
-
/** i18n key for the field's label in the configuration panel. */
|
|
169
|
-
labelKey: string;
|
|
170
|
-
/** i18n key for the field's input placeholder. */
|
|
171
|
-
placeholderKey: string;
|
|
172
|
-
}
|
|
173
|
-
/** A link-only issue-tracker descriptor. */
|
|
174
|
-
interface IssueTrackerProvider {
|
|
175
|
-
/** Stable id persisted in configuration, e.g. `jira`. */
|
|
176
|
-
id: string;
|
|
177
|
-
/** Display name — a proper noun (Jira, GitHub…), not translated. */
|
|
178
|
-
labelKey: string;
|
|
179
|
-
/**
|
|
180
|
-
* URL template with `{id}` plus one token per field. For `custom` the template
|
|
181
|
-
* itself comes from a field (`{template}`), so a single substitution path serves
|
|
182
|
-
* every provider.
|
|
183
|
-
*/
|
|
184
|
-
urlTemplate: string;
|
|
185
|
-
/** Structured fields the user fills in Settings for this provider. */
|
|
186
|
-
fields: IssueTrackerField[];
|
|
187
|
-
/** Regex source used for a soft (non-blocking) id-format warning. */
|
|
188
|
-
idPattern: string;
|
|
189
|
-
/** i18n key for the ticket-id input placeholder in the save dialog. */
|
|
190
|
-
idPlaceholderKey: string;
|
|
191
|
-
}
|
|
192
|
-
declare const ISSUE_TRACKER_PROVIDERS: IssueTrackerProvider[];
|
|
193
|
-
/** Feature is inert until configured: default to a custom, empty template. */
|
|
194
|
-
declare const DEFAULT_ISSUE_TRACKER_PROVIDER_ID = "custom";
|
|
195
|
-
/** Looks up a provider by id, or `undefined` when unknown. */
|
|
196
|
-
declare function findIssueTrackerProvider(id: string): IssueTrackerProvider | undefined;
|
|
197
|
-
|
|
198
156
|
declare class TranslationService {
|
|
199
157
|
private readonly lang$;
|
|
200
158
|
private readonly translations;
|
|
@@ -282,12 +240,6 @@ declare class PersistenceService {
|
|
|
282
240
|
insertTest(name: string, commands?: string[], interceptors?: string[], tags?: string[], notes?: string, ticketId?: string): Promise<number>;
|
|
283
241
|
getAllTests(): Promise<TestWithDetails[]>;
|
|
284
242
|
getTestById(testId: number): Promise<TestDetail | null>;
|
|
285
|
-
/**
|
|
286
|
-
* Builds the traceability comment for a test record (spec 014), reading the
|
|
287
|
-
* configured issue-tracker provider/params so the link — when resolvable — is
|
|
288
|
-
* embedded. Returns `null` when the record has no ticket id.
|
|
289
|
-
*/
|
|
290
|
-
private ticketCommentFor;
|
|
291
243
|
deleteTest(id: number): Promise<void>;
|
|
292
244
|
insertCommands(commands: string[], testId: number): Promise<void>;
|
|
293
245
|
getCommandsByTestId(testId: number): Promise<CommandRecord[]>;
|
|
@@ -431,71 +383,6 @@ declare function boxTopLeftFor(toggleCentre: Point, dir: ExpandDirection): Point
|
|
|
431
383
|
*/
|
|
432
384
|
declare function inferAssertionCommand(el: HTMLElement, selector: string): string;
|
|
433
385
|
|
|
434
|
-
/**
|
|
435
|
-
* Ticket-reference helpers for the link-only issue-tracker feature (spec 014).
|
|
436
|
-
*
|
|
437
|
-
* Pure functions: no DOM, no network. `buildTicketUrl` never trusts its inputs —
|
|
438
|
-
* it only returns a URL when the result parses to a safe `http(s)` link, which is
|
|
439
|
-
* what guards a user-supplied custom template from `javascript:`/`data:` injection.
|
|
440
|
-
*/
|
|
441
|
-
/**
|
|
442
|
-
* Resolves a provider template into a deep link for `id`.
|
|
443
|
-
*
|
|
444
|
-
* Substitutes each `{fieldKey}` (custom's `{template}` first, so a template that
|
|
445
|
-
* itself contains `{id}` is handled by the same path) and then `{id}` (URL-encoded).
|
|
446
|
-
* Returns `null` when a required field is missing, a token is left unresolved, or
|
|
447
|
-
* the result is not a valid `http:`/`https:` URL.
|
|
448
|
-
*/
|
|
449
|
-
declare function buildTicketUrl(provider: IssueTrackerProvider, params: Record<string, string>, id: string): string | null;
|
|
450
|
-
/**
|
|
451
|
-
* Convenience wrapper for the configuration shape: looks up the provider by id and
|
|
452
|
-
* picks its field values out of the per-provider `allParams` map before delegating
|
|
453
|
-
* to {@link buildTicketUrl}. Returns `null` for an unknown provider, an empty id, or
|
|
454
|
-
* any input that would not resolve to a safe `http(s)` link.
|
|
455
|
-
*/
|
|
456
|
-
declare function resolveTicketUrl(providerId: string, allParams: Record<string, Record<string, string>>, ticketId?: string): string | null;
|
|
457
|
-
/**
|
|
458
|
-
* Builds the traceability comment emitted above the generated `it()` block:
|
|
459
|
-
* `// {id} — {url}` when a link is available, otherwise `// {id}`.
|
|
460
|
-
*/
|
|
461
|
-
declare function buildTicketComment(id: string, url: string | null): string;
|
|
462
|
-
|
|
463
|
-
/**
|
|
464
|
-
* Hand-authored Cypress autocomplete data (spec 013). Pure — no CodeMirror — so
|
|
465
|
-
* it is unit-testable; `code-editor.ts` wraps it into a CodeMirror CompletionSource.
|
|
466
|
-
*/
|
|
467
|
-
/** Methods offered after typing `cy.` */
|
|
468
|
-
declare const CY_METHODS: string[];
|
|
469
|
-
/** Methods offered after a chained `.` (e.g. `cy.get('x').`). */
|
|
470
|
-
declare const CHAIN_METHODS: string[];
|
|
471
|
-
/** Top-level identifiers offered at the start of a statement. */
|
|
472
|
-
declare const TOP_LEVEL: string[];
|
|
473
|
-
/** All completion labels (used for the pure filter and tests). */
|
|
474
|
-
declare const CYPRESS_COMPLETIONS: string[];
|
|
475
|
-
/** Case-insensitive substring filter over a label list. */
|
|
476
|
-
declare function filterCompletions(list: string[], prefix: string): string[];
|
|
477
|
-
/** Convenience filter over the full completion set. */
|
|
478
|
-
declare function filterCypressCompletions(prefix: string): string[];
|
|
479
|
-
|
|
480
|
-
/**
|
|
481
|
-
* Lazy CodeMirror 6 factory for the code editor (spec 013). CodeMirror is loaded
|
|
482
|
-
* on demand (its own chunk) via dynamic import, so it never bloats the initial
|
|
483
|
-
* bundle. Browser-only; not exercised in jsdom (see the file-preview fallback).
|
|
484
|
-
*/
|
|
485
|
-
interface CodeEditorHandle {
|
|
486
|
-
getValue(): string;
|
|
487
|
-
setValue(value: string): void;
|
|
488
|
-
focus(): void;
|
|
489
|
-
destroy(): void;
|
|
490
|
-
}
|
|
491
|
-
interface CreateCodeEditorOptions {
|
|
492
|
-
parent: HTMLElement;
|
|
493
|
-
root?: Document | ShadowRoot;
|
|
494
|
-
doc: string;
|
|
495
|
-
onChange?: (value: string) => void;
|
|
496
|
-
}
|
|
497
|
-
declare function createCodeEditor(opts: CreateCodeEditorOptions): Promise<CodeEditorHandle>;
|
|
498
|
-
|
|
499
386
|
declare class SelectorPickerElement extends HTMLElement {
|
|
500
387
|
targetElement: HTMLElement | null;
|
|
501
388
|
recording: RecordingService;
|
|
@@ -547,6 +434,13 @@ declare class TestPrevisualizerElement extends HTMLElement {
|
|
|
547
434
|
private render;
|
|
548
435
|
}
|
|
549
436
|
|
|
437
|
+
type IssueTrackerProvider = 'jira' | 'github' | 'gitlab' | 'azure' | 'bitbucket' | 'custom';
|
|
438
|
+
interface IssueTrackerConfig {
|
|
439
|
+
enabled: boolean;
|
|
440
|
+
provider: IssueTrackerProvider;
|
|
441
|
+
baseUrl: string;
|
|
442
|
+
}
|
|
443
|
+
|
|
550
444
|
declare class SaveTestElement extends HTMLElement {
|
|
551
445
|
private shadow;
|
|
552
446
|
private _step;
|
|
@@ -554,8 +448,7 @@ declare class SaveTestElement extends HTMLElement {
|
|
|
554
448
|
notes: string;
|
|
555
449
|
tags: string[];
|
|
556
450
|
ticketId: string;
|
|
557
|
-
|
|
558
|
-
issueTrackerProviderId: string;
|
|
451
|
+
issueTrackerConfig: IssueTrackerConfig;
|
|
559
452
|
translation: TranslationService;
|
|
560
453
|
constructor();
|
|
561
454
|
connectedCallback(): void;
|
|
@@ -568,8 +461,7 @@ declare class SaveTestElement extends HTMLElement {
|
|
|
568
461
|
addTag(tag: string): void;
|
|
569
462
|
removeTag(tag: string): void;
|
|
570
463
|
private t;
|
|
571
|
-
|
|
572
|
-
private ticketView;
|
|
464
|
+
get ticketIdWarning(): boolean;
|
|
573
465
|
private dispatch;
|
|
574
466
|
private render;
|
|
575
467
|
}
|
|
@@ -586,15 +478,14 @@ declare class TestEditorElement extends HTMLElement {
|
|
|
586
478
|
selectedIds: Set<number>;
|
|
587
479
|
describeName: string;
|
|
588
480
|
groupByTicket: boolean;
|
|
589
|
-
|
|
590
|
-
issueTrackerParams: Record<string, Record<string, string>>;
|
|
481
|
+
issueTrackerConfig: IssueTrackerConfig;
|
|
591
482
|
constructor();
|
|
592
483
|
connectedCallback(): void;
|
|
593
484
|
loadTests(): Promise<void>;
|
|
594
|
-
toggleGroupByTicket(): void;
|
|
595
485
|
deleteTest(id: number): Promise<void>;
|
|
596
486
|
toggleExpand(index: number): void;
|
|
597
487
|
hasInterceptors(testId: number): boolean;
|
|
488
|
+
toggleGroupByTicket(): void;
|
|
598
489
|
toggleSelectMode(): void;
|
|
599
490
|
toggleSelectTest(id: number): void;
|
|
600
491
|
generateDescribe(): void;
|
|
@@ -616,13 +507,12 @@ declare class ConfigurationElement extends HTMLElement {
|
|
|
616
507
|
smartSelectorEnabled: boolean;
|
|
617
508
|
startHidden: boolean;
|
|
618
509
|
resumeTtlMinutes: number;
|
|
619
|
-
issueTrackerProviderId: string;
|
|
620
|
-
issueTrackerParams: Record<string, Record<string, string>>;
|
|
621
510
|
isExporting: boolean;
|
|
622
511
|
exportMode: ExportMode;
|
|
623
512
|
exportTests: TestWithDetails[];
|
|
624
513
|
exportSelectedIds: Set<number>;
|
|
625
514
|
exportSelectedTags: Set<string>;
|
|
515
|
+
issueTrackerConfig: IssueTrackerConfig;
|
|
626
516
|
private filesystemGranted;
|
|
627
517
|
private cypressFolderName;
|
|
628
518
|
constructor();
|
|
@@ -634,13 +524,12 @@ declare class ConfigurationElement extends HTMLElement {
|
|
|
634
524
|
onFixtureModeChange(checked: boolean): void;
|
|
635
525
|
onStartHiddenChange(checked: boolean): Promise<void>;
|
|
636
526
|
onResumeTtlChange(minutes: number): Promise<void>;
|
|
637
|
-
/** Selects the issue-tracker provider (link-only, no sync — spec 014). */
|
|
638
|
-
onIssueTrackerProviderChange(id: string): Promise<void>;
|
|
639
|
-
/** Stores a provider field value, scoped to the active provider so switching keeps values. */
|
|
640
|
-
onIssueTrackerParamChange(fieldKey: string, value: string): Promise<void>;
|
|
641
527
|
onResetWidgetPosition(): void;
|
|
642
528
|
onSmartSelectorChange(enabled: boolean): Promise<void>;
|
|
643
529
|
onSelectorStrategyChange(strategy: SelectorStrategy): Promise<void>;
|
|
530
|
+
onIssueTrackerEnabledChange(enabled: boolean): Promise<void>;
|
|
531
|
+
onIssueTrackerProviderChange(provider: IssueTrackerProvider): Promise<void>;
|
|
532
|
+
onIssueTrackerBaseUrlChange(baseUrl: string): Promise<void>;
|
|
644
533
|
changeFolder(): Promise<void>;
|
|
645
534
|
revokeAccess(): Promise<void>;
|
|
646
535
|
private downloadTests;
|
|
@@ -706,7 +595,6 @@ declare class AdvancedTestEditorElement extends HTMLElement {
|
|
|
706
595
|
declare class FilePreviewElement extends HTMLElement {
|
|
707
596
|
private shadow;
|
|
708
597
|
private textarea;
|
|
709
|
-
private editor;
|
|
710
598
|
fileName: string | null;
|
|
711
599
|
closeLabel: string;
|
|
712
600
|
translation: TranslationService;
|
|
@@ -726,10 +614,7 @@ declare class FilePreviewElement extends HTMLElement {
|
|
|
726
614
|
private _runOutput;
|
|
727
615
|
constructor();
|
|
728
616
|
connectedCallback(): void;
|
|
729
|
-
disconnectedCallback(): void;
|
|
730
617
|
private t;
|
|
731
|
-
/** Current editor content (CodeMirror if upgraded, else the textarea/fallback). */
|
|
732
|
-
private currentValue;
|
|
733
618
|
get fileContent(): string | null;
|
|
734
619
|
set fileContent(v: string | null);
|
|
735
620
|
saveFile(): void;
|
|
@@ -750,12 +635,6 @@ declare class FilePreviewElement extends HTMLElement {
|
|
|
750
635
|
*/
|
|
751
636
|
insertBlocks(): void;
|
|
752
637
|
private render;
|
|
753
|
-
/**
|
|
754
|
-
* Lazily upgrades the textarea to a CodeMirror editor (syntax highlight +
|
|
755
|
-
* Cypress autocomplete). On any failure the textarea is left in place, so the
|
|
756
|
-
* editor degrades gracefully when CodeMirror can't load.
|
|
757
|
-
*/
|
|
758
|
-
private upgradeEditor;
|
|
759
638
|
}
|
|
760
639
|
|
|
761
640
|
/**
|
|
@@ -796,6 +675,7 @@ declare class LibE2eRecorderElement extends HTMLElement {
|
|
|
796
675
|
private httpMonitor?;
|
|
797
676
|
private smartSelectorEnabled;
|
|
798
677
|
private _needsRecordingRebuild;
|
|
678
|
+
private issueTrackerConfig;
|
|
799
679
|
recording: RecordingService;
|
|
800
680
|
persistence: PersistenceService;
|
|
801
681
|
translation: TranslationService;
|
|
@@ -873,13 +753,11 @@ declare class LibE2eRecorderElement extends HTMLElement {
|
|
|
873
753
|
private showFileEditorDialog;
|
|
874
754
|
private onSaveTest;
|
|
875
755
|
private onSaveAndExportTest;
|
|
876
|
-
/** Writes captured fixtures to cypress/fixtures and toasts the outcome (spec 012). */
|
|
877
|
-
private writeFixturesIfAny;
|
|
878
756
|
private toggleModal;
|
|
879
757
|
private resizePopup;
|
|
880
758
|
private render;
|
|
881
759
|
}
|
|
882
760
|
|
|
883
|
-
declare const VERSION = "0.
|
|
761
|
+
declare const VERSION = "0.9.0";
|
|
884
762
|
|
|
885
|
-
export { ACTIVE_SESSION_BREADCRUMB_KEY, type ActiveSessionState, AdvancedTestEditorElement, AdvancedTestTransformationService,
|
|
763
|
+
export { ACTIVE_SESSION_BREADCRUMB_KEY, type ActiveSessionState, AdvancedTestEditorElement, AdvancedTestTransformationService, ConfigurationElement, type DBSchema, type DBStore, type DBStoreIndex, DB_SCHEMA, DB_STORE_NAMES, DEFAULT_RESUME_TTL_MINUTES, DRAG_THRESHOLD, type DirectoryNode, type ExpandDirection, type ExportMode, type ExportSelectionOptions, type FileNode, FilePreviewElement, HelpPanelElement, HttpMonitor, INPUT_TYPES, type InputType, LIB_E2E_CYPRESS_FOR_DUMMYS_SWAL2_STYLES, LOCALE_BY_LANG, type Lang, LibE2eRecorderElement, PersistenceService, type Point, RESUME_TTL_CONFIG_KEY, RecordingService, SCROLLBAR_STYLES, SUPPORTED_LANGS, SaveTestElement, SelectorPickerElement, type SelectorStrategy, Subject, TOGGLE_MARGIN, type TestDetail, TestEditorElement, TestPrevisualizerElement, type TestWithDetails, TransformationService, TranslationService, VERSION, advancedTestTransformationService, boxOffsetForDirection, boxTopLeftFor, clampTogglePosition, defaultTogglePosition, generateAlias, inferAssertionCommand, injectStyles, isLang, isLocalHost, localeForLang, makeModalResizable, makeSwalDraggable, makeSwalDraggableByContentId, persistenceService, resolveExpandDirection, selectTestsForExport, setSwal2DataCyAttribute, showToast, transformationService, translationService };
|
package/dist/index.d.ts
CHANGED
|
@@ -153,48 +153,6 @@ declare const RESUME_TTL_CONFIG_KEY = "resumeRecencyTtlMinutes";
|
|
|
153
153
|
/** Default minutes within which an active session resumes silently. */
|
|
154
154
|
declare const DEFAULT_RESUME_TTL_MINUTES = 30;
|
|
155
155
|
|
|
156
|
-
/**
|
|
157
|
-
* Issue-tracker presets for the *link-only* ticket reference (spec 014).
|
|
158
|
-
*
|
|
159
|
-
* These are static, data-driven descriptors — there is NO API call, no auth and
|
|
160
|
-
* no synchronisation. A provider only knows how to turn a ticket id plus a few
|
|
161
|
-
* user-supplied fields into a deep link. Adding a new tracker is a single entry
|
|
162
|
-
* in {@link ISSUE_TRACKER_PROVIDERS}; no new code paths are required.
|
|
163
|
-
*/
|
|
164
|
-
/** A single user-configured field a provider needs to build its links. */
|
|
165
|
-
interface IssueTrackerField {
|
|
166
|
-
/** Token used in {@link IssueTrackerProvider.urlTemplate}, e.g. `org`. */
|
|
167
|
-
key: string;
|
|
168
|
-
/** i18n key for the field's label in the configuration panel. */
|
|
169
|
-
labelKey: string;
|
|
170
|
-
/** i18n key for the field's input placeholder. */
|
|
171
|
-
placeholderKey: string;
|
|
172
|
-
}
|
|
173
|
-
/** A link-only issue-tracker descriptor. */
|
|
174
|
-
interface IssueTrackerProvider {
|
|
175
|
-
/** Stable id persisted in configuration, e.g. `jira`. */
|
|
176
|
-
id: string;
|
|
177
|
-
/** Display name — a proper noun (Jira, GitHub…), not translated. */
|
|
178
|
-
labelKey: string;
|
|
179
|
-
/**
|
|
180
|
-
* URL template with `{id}` plus one token per field. For `custom` the template
|
|
181
|
-
* itself comes from a field (`{template}`), so a single substitution path serves
|
|
182
|
-
* every provider.
|
|
183
|
-
*/
|
|
184
|
-
urlTemplate: string;
|
|
185
|
-
/** Structured fields the user fills in Settings for this provider. */
|
|
186
|
-
fields: IssueTrackerField[];
|
|
187
|
-
/** Regex source used for a soft (non-blocking) id-format warning. */
|
|
188
|
-
idPattern: string;
|
|
189
|
-
/** i18n key for the ticket-id input placeholder in the save dialog. */
|
|
190
|
-
idPlaceholderKey: string;
|
|
191
|
-
}
|
|
192
|
-
declare const ISSUE_TRACKER_PROVIDERS: IssueTrackerProvider[];
|
|
193
|
-
/** Feature is inert until configured: default to a custom, empty template. */
|
|
194
|
-
declare const DEFAULT_ISSUE_TRACKER_PROVIDER_ID = "custom";
|
|
195
|
-
/** Looks up a provider by id, or `undefined` when unknown. */
|
|
196
|
-
declare function findIssueTrackerProvider(id: string): IssueTrackerProvider | undefined;
|
|
197
|
-
|
|
198
156
|
declare class TranslationService {
|
|
199
157
|
private readonly lang$;
|
|
200
158
|
private readonly translations;
|
|
@@ -282,12 +240,6 @@ declare class PersistenceService {
|
|
|
282
240
|
insertTest(name: string, commands?: string[], interceptors?: string[], tags?: string[], notes?: string, ticketId?: string): Promise<number>;
|
|
283
241
|
getAllTests(): Promise<TestWithDetails[]>;
|
|
284
242
|
getTestById(testId: number): Promise<TestDetail | null>;
|
|
285
|
-
/**
|
|
286
|
-
* Builds the traceability comment for a test record (spec 014), reading the
|
|
287
|
-
* configured issue-tracker provider/params so the link — when resolvable — is
|
|
288
|
-
* embedded. Returns `null` when the record has no ticket id.
|
|
289
|
-
*/
|
|
290
|
-
private ticketCommentFor;
|
|
291
243
|
deleteTest(id: number): Promise<void>;
|
|
292
244
|
insertCommands(commands: string[], testId: number): Promise<void>;
|
|
293
245
|
getCommandsByTestId(testId: number): Promise<CommandRecord[]>;
|
|
@@ -431,71 +383,6 @@ declare function boxTopLeftFor(toggleCentre: Point, dir: ExpandDirection): Point
|
|
|
431
383
|
*/
|
|
432
384
|
declare function inferAssertionCommand(el: HTMLElement, selector: string): string;
|
|
433
385
|
|
|
434
|
-
/**
|
|
435
|
-
* Ticket-reference helpers for the link-only issue-tracker feature (spec 014).
|
|
436
|
-
*
|
|
437
|
-
* Pure functions: no DOM, no network. `buildTicketUrl` never trusts its inputs —
|
|
438
|
-
* it only returns a URL when the result parses to a safe `http(s)` link, which is
|
|
439
|
-
* what guards a user-supplied custom template from `javascript:`/`data:` injection.
|
|
440
|
-
*/
|
|
441
|
-
/**
|
|
442
|
-
* Resolves a provider template into a deep link for `id`.
|
|
443
|
-
*
|
|
444
|
-
* Substitutes each `{fieldKey}` (custom's `{template}` first, so a template that
|
|
445
|
-
* itself contains `{id}` is handled by the same path) and then `{id}` (URL-encoded).
|
|
446
|
-
* Returns `null` when a required field is missing, a token is left unresolved, or
|
|
447
|
-
* the result is not a valid `http:`/`https:` URL.
|
|
448
|
-
*/
|
|
449
|
-
declare function buildTicketUrl(provider: IssueTrackerProvider, params: Record<string, string>, id: string): string | null;
|
|
450
|
-
/**
|
|
451
|
-
* Convenience wrapper for the configuration shape: looks up the provider by id and
|
|
452
|
-
* picks its field values out of the per-provider `allParams` map before delegating
|
|
453
|
-
* to {@link buildTicketUrl}. Returns `null` for an unknown provider, an empty id, or
|
|
454
|
-
* any input that would not resolve to a safe `http(s)` link.
|
|
455
|
-
*/
|
|
456
|
-
declare function resolveTicketUrl(providerId: string, allParams: Record<string, Record<string, string>>, ticketId?: string): string | null;
|
|
457
|
-
/**
|
|
458
|
-
* Builds the traceability comment emitted above the generated `it()` block:
|
|
459
|
-
* `// {id} — {url}` when a link is available, otherwise `// {id}`.
|
|
460
|
-
*/
|
|
461
|
-
declare function buildTicketComment(id: string, url: string | null): string;
|
|
462
|
-
|
|
463
|
-
/**
|
|
464
|
-
* Hand-authored Cypress autocomplete data (spec 013). Pure — no CodeMirror — so
|
|
465
|
-
* it is unit-testable; `code-editor.ts` wraps it into a CodeMirror CompletionSource.
|
|
466
|
-
*/
|
|
467
|
-
/** Methods offered after typing `cy.` */
|
|
468
|
-
declare const CY_METHODS: string[];
|
|
469
|
-
/** Methods offered after a chained `.` (e.g. `cy.get('x').`). */
|
|
470
|
-
declare const CHAIN_METHODS: string[];
|
|
471
|
-
/** Top-level identifiers offered at the start of a statement. */
|
|
472
|
-
declare const TOP_LEVEL: string[];
|
|
473
|
-
/** All completion labels (used for the pure filter and tests). */
|
|
474
|
-
declare const CYPRESS_COMPLETIONS: string[];
|
|
475
|
-
/** Case-insensitive substring filter over a label list. */
|
|
476
|
-
declare function filterCompletions(list: string[], prefix: string): string[];
|
|
477
|
-
/** Convenience filter over the full completion set. */
|
|
478
|
-
declare function filterCypressCompletions(prefix: string): string[];
|
|
479
|
-
|
|
480
|
-
/**
|
|
481
|
-
* Lazy CodeMirror 6 factory for the code editor (spec 013). CodeMirror is loaded
|
|
482
|
-
* on demand (its own chunk) via dynamic import, so it never bloats the initial
|
|
483
|
-
* bundle. Browser-only; not exercised in jsdom (see the file-preview fallback).
|
|
484
|
-
*/
|
|
485
|
-
interface CodeEditorHandle {
|
|
486
|
-
getValue(): string;
|
|
487
|
-
setValue(value: string): void;
|
|
488
|
-
focus(): void;
|
|
489
|
-
destroy(): void;
|
|
490
|
-
}
|
|
491
|
-
interface CreateCodeEditorOptions {
|
|
492
|
-
parent: HTMLElement;
|
|
493
|
-
root?: Document | ShadowRoot;
|
|
494
|
-
doc: string;
|
|
495
|
-
onChange?: (value: string) => void;
|
|
496
|
-
}
|
|
497
|
-
declare function createCodeEditor(opts: CreateCodeEditorOptions): Promise<CodeEditorHandle>;
|
|
498
|
-
|
|
499
386
|
declare class SelectorPickerElement extends HTMLElement {
|
|
500
387
|
targetElement: HTMLElement | null;
|
|
501
388
|
recording: RecordingService;
|
|
@@ -547,6 +434,13 @@ declare class TestPrevisualizerElement extends HTMLElement {
|
|
|
547
434
|
private render;
|
|
548
435
|
}
|
|
549
436
|
|
|
437
|
+
type IssueTrackerProvider = 'jira' | 'github' | 'gitlab' | 'azure' | 'bitbucket' | 'custom';
|
|
438
|
+
interface IssueTrackerConfig {
|
|
439
|
+
enabled: boolean;
|
|
440
|
+
provider: IssueTrackerProvider;
|
|
441
|
+
baseUrl: string;
|
|
442
|
+
}
|
|
443
|
+
|
|
550
444
|
declare class SaveTestElement extends HTMLElement {
|
|
551
445
|
private shadow;
|
|
552
446
|
private _step;
|
|
@@ -554,8 +448,7 @@ declare class SaveTestElement extends HTMLElement {
|
|
|
554
448
|
notes: string;
|
|
555
449
|
tags: string[];
|
|
556
450
|
ticketId: string;
|
|
557
|
-
|
|
558
|
-
issueTrackerProviderId: string;
|
|
451
|
+
issueTrackerConfig: IssueTrackerConfig;
|
|
559
452
|
translation: TranslationService;
|
|
560
453
|
constructor();
|
|
561
454
|
connectedCallback(): void;
|
|
@@ -568,8 +461,7 @@ declare class SaveTestElement extends HTMLElement {
|
|
|
568
461
|
addTag(tag: string): void;
|
|
569
462
|
removeTag(tag: string): void;
|
|
570
463
|
private t;
|
|
571
|
-
|
|
572
|
-
private ticketView;
|
|
464
|
+
get ticketIdWarning(): boolean;
|
|
573
465
|
private dispatch;
|
|
574
466
|
private render;
|
|
575
467
|
}
|
|
@@ -586,15 +478,14 @@ declare class TestEditorElement extends HTMLElement {
|
|
|
586
478
|
selectedIds: Set<number>;
|
|
587
479
|
describeName: string;
|
|
588
480
|
groupByTicket: boolean;
|
|
589
|
-
|
|
590
|
-
issueTrackerParams: Record<string, Record<string, string>>;
|
|
481
|
+
issueTrackerConfig: IssueTrackerConfig;
|
|
591
482
|
constructor();
|
|
592
483
|
connectedCallback(): void;
|
|
593
484
|
loadTests(): Promise<void>;
|
|
594
|
-
toggleGroupByTicket(): void;
|
|
595
485
|
deleteTest(id: number): Promise<void>;
|
|
596
486
|
toggleExpand(index: number): void;
|
|
597
487
|
hasInterceptors(testId: number): boolean;
|
|
488
|
+
toggleGroupByTicket(): void;
|
|
598
489
|
toggleSelectMode(): void;
|
|
599
490
|
toggleSelectTest(id: number): void;
|
|
600
491
|
generateDescribe(): void;
|
|
@@ -616,13 +507,12 @@ declare class ConfigurationElement extends HTMLElement {
|
|
|
616
507
|
smartSelectorEnabled: boolean;
|
|
617
508
|
startHidden: boolean;
|
|
618
509
|
resumeTtlMinutes: number;
|
|
619
|
-
issueTrackerProviderId: string;
|
|
620
|
-
issueTrackerParams: Record<string, Record<string, string>>;
|
|
621
510
|
isExporting: boolean;
|
|
622
511
|
exportMode: ExportMode;
|
|
623
512
|
exportTests: TestWithDetails[];
|
|
624
513
|
exportSelectedIds: Set<number>;
|
|
625
514
|
exportSelectedTags: Set<string>;
|
|
515
|
+
issueTrackerConfig: IssueTrackerConfig;
|
|
626
516
|
private filesystemGranted;
|
|
627
517
|
private cypressFolderName;
|
|
628
518
|
constructor();
|
|
@@ -634,13 +524,12 @@ declare class ConfigurationElement extends HTMLElement {
|
|
|
634
524
|
onFixtureModeChange(checked: boolean): void;
|
|
635
525
|
onStartHiddenChange(checked: boolean): Promise<void>;
|
|
636
526
|
onResumeTtlChange(minutes: number): Promise<void>;
|
|
637
|
-
/** Selects the issue-tracker provider (link-only, no sync — spec 014). */
|
|
638
|
-
onIssueTrackerProviderChange(id: string): Promise<void>;
|
|
639
|
-
/** Stores a provider field value, scoped to the active provider so switching keeps values. */
|
|
640
|
-
onIssueTrackerParamChange(fieldKey: string, value: string): Promise<void>;
|
|
641
527
|
onResetWidgetPosition(): void;
|
|
642
528
|
onSmartSelectorChange(enabled: boolean): Promise<void>;
|
|
643
529
|
onSelectorStrategyChange(strategy: SelectorStrategy): Promise<void>;
|
|
530
|
+
onIssueTrackerEnabledChange(enabled: boolean): Promise<void>;
|
|
531
|
+
onIssueTrackerProviderChange(provider: IssueTrackerProvider): Promise<void>;
|
|
532
|
+
onIssueTrackerBaseUrlChange(baseUrl: string): Promise<void>;
|
|
644
533
|
changeFolder(): Promise<void>;
|
|
645
534
|
revokeAccess(): Promise<void>;
|
|
646
535
|
private downloadTests;
|
|
@@ -706,7 +595,6 @@ declare class AdvancedTestEditorElement extends HTMLElement {
|
|
|
706
595
|
declare class FilePreviewElement extends HTMLElement {
|
|
707
596
|
private shadow;
|
|
708
597
|
private textarea;
|
|
709
|
-
private editor;
|
|
710
598
|
fileName: string | null;
|
|
711
599
|
closeLabel: string;
|
|
712
600
|
translation: TranslationService;
|
|
@@ -726,10 +614,7 @@ declare class FilePreviewElement extends HTMLElement {
|
|
|
726
614
|
private _runOutput;
|
|
727
615
|
constructor();
|
|
728
616
|
connectedCallback(): void;
|
|
729
|
-
disconnectedCallback(): void;
|
|
730
617
|
private t;
|
|
731
|
-
/** Current editor content (CodeMirror if upgraded, else the textarea/fallback). */
|
|
732
|
-
private currentValue;
|
|
733
618
|
get fileContent(): string | null;
|
|
734
619
|
set fileContent(v: string | null);
|
|
735
620
|
saveFile(): void;
|
|
@@ -750,12 +635,6 @@ declare class FilePreviewElement extends HTMLElement {
|
|
|
750
635
|
*/
|
|
751
636
|
insertBlocks(): void;
|
|
752
637
|
private render;
|
|
753
|
-
/**
|
|
754
|
-
* Lazily upgrades the textarea to a CodeMirror editor (syntax highlight +
|
|
755
|
-
* Cypress autocomplete). On any failure the textarea is left in place, so the
|
|
756
|
-
* editor degrades gracefully when CodeMirror can't load.
|
|
757
|
-
*/
|
|
758
|
-
private upgradeEditor;
|
|
759
638
|
}
|
|
760
639
|
|
|
761
640
|
/**
|
|
@@ -796,6 +675,7 @@ declare class LibE2eRecorderElement extends HTMLElement {
|
|
|
796
675
|
private httpMonitor?;
|
|
797
676
|
private smartSelectorEnabled;
|
|
798
677
|
private _needsRecordingRebuild;
|
|
678
|
+
private issueTrackerConfig;
|
|
799
679
|
recording: RecordingService;
|
|
800
680
|
persistence: PersistenceService;
|
|
801
681
|
translation: TranslationService;
|
|
@@ -873,13 +753,11 @@ declare class LibE2eRecorderElement extends HTMLElement {
|
|
|
873
753
|
private showFileEditorDialog;
|
|
874
754
|
private onSaveTest;
|
|
875
755
|
private onSaveAndExportTest;
|
|
876
|
-
/** Writes captured fixtures to cypress/fixtures and toasts the outcome (spec 012). */
|
|
877
|
-
private writeFixturesIfAny;
|
|
878
756
|
private toggleModal;
|
|
879
757
|
private resizePopup;
|
|
880
758
|
private render;
|
|
881
759
|
}
|
|
882
760
|
|
|
883
|
-
declare const VERSION = "0.
|
|
761
|
+
declare const VERSION = "0.9.0";
|
|
884
762
|
|
|
885
|
-
export { ACTIVE_SESSION_BREADCRUMB_KEY, type ActiveSessionState, AdvancedTestEditorElement, AdvancedTestTransformationService,
|
|
763
|
+
export { ACTIVE_SESSION_BREADCRUMB_KEY, type ActiveSessionState, AdvancedTestEditorElement, AdvancedTestTransformationService, ConfigurationElement, type DBSchema, type DBStore, type DBStoreIndex, DB_SCHEMA, DB_STORE_NAMES, DEFAULT_RESUME_TTL_MINUTES, DRAG_THRESHOLD, type DirectoryNode, type ExpandDirection, type ExportMode, type ExportSelectionOptions, type FileNode, FilePreviewElement, HelpPanelElement, HttpMonitor, INPUT_TYPES, type InputType, LIB_E2E_CYPRESS_FOR_DUMMYS_SWAL2_STYLES, LOCALE_BY_LANG, type Lang, LibE2eRecorderElement, PersistenceService, type Point, RESUME_TTL_CONFIG_KEY, RecordingService, SCROLLBAR_STYLES, SUPPORTED_LANGS, SaveTestElement, SelectorPickerElement, type SelectorStrategy, Subject, TOGGLE_MARGIN, type TestDetail, TestEditorElement, TestPrevisualizerElement, type TestWithDetails, TransformationService, TranslationService, VERSION, advancedTestTransformationService, boxOffsetForDirection, boxTopLeftFor, clampTogglePosition, defaultTogglePosition, generateAlias, inferAssertionCommand, injectStyles, isLang, isLocalHost, localeForLang, makeModalResizable, makeSwalDraggable, makeSwalDraggableByContentId, persistenceService, resolveExpandDirection, selectTestsForExport, setSwal2DataCyAttribute, showToast, transformationService, translationService };
|