@bigbinary/neeto-playwright-commons 2.1.4 → 2.2.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 -0
- package/index.cjs.js +274 -102
- package/index.cjs.js.map +1 -1
- package/index.d.ts +32 -7
- package/index.js +276 -106
- package/index.js.map +1 -1
- package/package.json +3 -2
- package/scripts/neeto-auth/playwright_email_capture.rb.template +59 -0
- package/scripts/neeto-auth/setup.sh +24 -0
package/index.js
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { spawn, execSync } from 'child_process';
|
|
2
2
|
import { keysToSnakeCase, hyphenate, isNotPresent, humanize, isPresent, dynamicArray, findBy, truncate, isNotEmpty, isNotEqualDeep, randomPick } from '@bigbinary/neeto-cist';
|
|
3
3
|
import { faker } from '@faker-js/faker';
|
|
4
|
-
import * as
|
|
5
|
-
import
|
|
6
|
-
import require$$0$
|
|
4
|
+
import * as fs$4 from 'fs';
|
|
5
|
+
import fs__default, { readFileSync, promises, existsSync, writeFileSync, unlinkSync } from 'fs';
|
|
6
|
+
import require$$0$4 from 'os';
|
|
7
7
|
import * as path$1 from 'path';
|
|
8
8
|
import path__default from 'path';
|
|
9
9
|
import test, { expect, test as test$1, chromium as chromium$1, defineConfig, devices } from '@playwright/test';
|
|
10
10
|
import { getI18nInstance, initI18n } from 'playwright-i18next-fixture';
|
|
11
|
-
import require$$0$
|
|
11
|
+
import require$$0$3 from 'util';
|
|
12
12
|
import { curry, isNotNil, not, isEmpty, pluck, mergeAll, isNil, mergeDeepLeft } from 'ramda';
|
|
13
13
|
import dayjs from 'dayjs';
|
|
14
|
-
import require$$0$
|
|
15
|
-
import require$$0$
|
|
16
|
-
import require$$0$
|
|
14
|
+
import require$$0$7 from 'stream';
|
|
15
|
+
import require$$0$6 from 'node:buffer';
|
|
16
|
+
import require$$0$5 from 'buffer';
|
|
17
17
|
import require$$1$2 from 'string_decoder';
|
|
18
18
|
import require$$1$3 from 'node:stream';
|
|
19
|
-
import require$$0$
|
|
19
|
+
import require$$0$8 from 'crypto';
|
|
20
20
|
import require$$1$4 from 'zlib';
|
|
21
|
-
import require$$0$
|
|
22
|
-
import require$$0$
|
|
21
|
+
import require$$0$9 from 'assert';
|
|
22
|
+
import require$$0$a from 'tty';
|
|
23
23
|
import stealth$1 from 'puppeteer-extra-plugin-stealth';
|
|
24
24
|
import require$$1$5 from 'events';
|
|
25
25
|
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
26
26
|
import timezone from 'dayjs/plugin/timezone';
|
|
27
27
|
import utc from 'dayjs/plugin/utc';
|
|
28
28
|
import https from 'https';
|
|
29
|
+
import * as http from 'http';
|
|
29
30
|
|
|
30
31
|
const BASE_URL = "/api/v1";
|
|
31
32
|
const NEETO_AUTH_BASE_URL = (subdomain = "app") => `https://${subdomain}.neetoauth.net`;
|
|
@@ -668,7 +669,7 @@ var hasRequiredUtil_inspect;
|
|
|
668
669
|
function requireUtil_inspect () {
|
|
669
670
|
if (hasRequiredUtil_inspect) return util_inspect;
|
|
670
671
|
hasRequiredUtil_inspect = 1;
|
|
671
|
-
util_inspect = require$$0$
|
|
672
|
+
util_inspect = require$$0$3.inspect;
|
|
672
673
|
return util_inspect;
|
|
673
674
|
}
|
|
674
675
|
|
|
@@ -5074,7 +5075,7 @@ const joinString = (string1, string2, string3 = "", separator = " ") => {
|
|
|
5074
5075
|
};
|
|
5075
5076
|
const readFileSyncIfExists = (path = STORAGE_STATE) => {
|
|
5076
5077
|
try {
|
|
5077
|
-
return JSON.parse(
|
|
5078
|
+
return JSON.parse(fs$4.readFileSync(path, "utf8"));
|
|
5078
5079
|
}
|
|
5079
5080
|
catch {
|
|
5080
5081
|
return {};
|
|
@@ -5083,7 +5084,7 @@ const readFileSyncIfExists = (path = STORAGE_STATE) => {
|
|
|
5083
5084
|
const getGlobalUserState = () => readFileSyncIfExists()?.user;
|
|
5084
5085
|
const writeDataToFile = data => {
|
|
5085
5086
|
try {
|
|
5086
|
-
|
|
5087
|
+
fs$4.writeFileSync(STORAGE_STATE, data, "utf8");
|
|
5087
5088
|
}
|
|
5088
5089
|
catch (error) {
|
|
5089
5090
|
console.log(error);
|
|
@@ -5096,7 +5097,7 @@ const updateCredentials = ({ key, value }) => {
|
|
|
5096
5097
|
return writeDataToFile(JSON.stringify(data));
|
|
5097
5098
|
};
|
|
5098
5099
|
const removeCredentialFile = () => {
|
|
5099
|
-
|
|
5100
|
+
fs$4.unlink(STORAGE_STATE, error => {
|
|
5100
5101
|
if (!error)
|
|
5101
5102
|
return;
|
|
5102
5103
|
console.log(error);
|
|
@@ -6246,17 +6247,14 @@ class CustomCommands {
|
|
|
6246
6247
|
await expect(locator).toBeChecked({ checked: shouldBeChecked });
|
|
6247
6248
|
}).toPass({ timeout: 15_000 });
|
|
6248
6249
|
moveCursorAtBottom = async () => {
|
|
6249
|
-
const
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
await this.page.keyboard.press("End");
|
|
6256
|
-
await this.page.keyboard.press("PageDown");
|
|
6257
|
-
}
|
|
6250
|
+
const isMacOS = require$$0$4.platform() === "darwin";
|
|
6251
|
+
const rightArrowKey = isMacOS ? "Meta+ArrowRight" : "End";
|
|
6252
|
+
const downArrowKey = isMacOS ? "Meta+ArrowDown" : "PageDown";
|
|
6253
|
+
await this.page.keyboard.press(rightArrowKey);
|
|
6254
|
+
await this.page.keyboard.press(rightArrowKey);
|
|
6255
|
+
await this.page.keyboard.press(downArrowKey);
|
|
6258
6256
|
// eslint-disable-next-line playwright/no-wait-for-timeout
|
|
6259
|
-
await this.page.waitForTimeout(
|
|
6257
|
+
await this.page.waitForTimeout(150); // Adding some delay for DOM to react
|
|
6260
6258
|
await this.page.keyboard.press("Enter");
|
|
6261
6259
|
};
|
|
6262
6260
|
}
|
|
@@ -8890,7 +8888,7 @@ function requireSafer () {
|
|
|
8890
8888
|
if (hasRequiredSafer) return safer_1;
|
|
8891
8889
|
hasRequiredSafer = 1;
|
|
8892
8890
|
|
|
8893
|
-
var buffer = require$$0$
|
|
8891
|
+
var buffer = require$$0$5;
|
|
8894
8892
|
var Buffer = buffer.Buffer;
|
|
8895
8893
|
|
|
8896
8894
|
var safer = {};
|
|
@@ -26585,7 +26583,7 @@ function requireCharset () {
|
|
|
26585
26583
|
if (hasRequiredCharset) return charset.exports;
|
|
26586
26584
|
hasRequiredCharset = 1;
|
|
26587
26585
|
|
|
26588
|
-
const { Buffer } = require$$0$
|
|
26586
|
+
const { Buffer } = require$$0$6;
|
|
26589
26587
|
const iconv = requireLib$b();
|
|
26590
26588
|
const encodingJapanese = requireSrc$2();
|
|
26591
26589
|
const charsets = requireCharsets();
|
|
@@ -26711,7 +26709,7 @@ function requireLibbase64 () {
|
|
|
26711
26709
|
if (hasRequiredLibbase64) return libbase64;
|
|
26712
26710
|
hasRequiredLibbase64 = 1;
|
|
26713
26711
|
|
|
26714
|
-
const { Buffer } = require$$0$
|
|
26712
|
+
const { Buffer } = require$$0$6;
|
|
26715
26713
|
const stream = require$$1$3;
|
|
26716
26714
|
const Transform = stream.Transform;
|
|
26717
26715
|
|
|
@@ -26972,7 +26970,7 @@ function requireLibqp () {
|
|
|
26972
26970
|
if (hasRequiredLibqp) return libqp;
|
|
26973
26971
|
hasRequiredLibqp = 1;
|
|
26974
26972
|
|
|
26975
|
-
const { Buffer } = require$$0$
|
|
26973
|
+
const { Buffer } = require$$0$6;
|
|
26976
26974
|
const stream = require$$1$3;
|
|
26977
26975
|
const Transform = stream.Transform;
|
|
26978
26976
|
|
|
@@ -29347,7 +29345,7 @@ function requireLibmime () {
|
|
|
29347
29345
|
if (hasRequiredLibmime) return libmime.exports;
|
|
29348
29346
|
hasRequiredLibmime = 1;
|
|
29349
29347
|
|
|
29350
|
-
const { Buffer } = require$$0$
|
|
29348
|
+
const { Buffer } = require$$0$6;
|
|
29351
29349
|
const libcharset = requireCharset();
|
|
29352
29350
|
const libbase64 = requireLibbase64();
|
|
29353
29351
|
const libqp = requireLibqp();
|
|
@@ -30528,7 +30526,7 @@ function requireMimeNode () {
|
|
|
30528
30526
|
const libmime = requireLibmime();
|
|
30529
30527
|
const libqp = requireLibqp();
|
|
30530
30528
|
const libbase64 = requireLibbase64();
|
|
30531
|
-
const PassThrough = require$$0$
|
|
30529
|
+
const PassThrough = require$$0$7.PassThrough;
|
|
30532
30530
|
const pathlib = path__default;
|
|
30533
30531
|
|
|
30534
30532
|
class MimeNode {
|
|
@@ -30797,7 +30795,7 @@ function requireMessageSplitter () {
|
|
|
30797
30795
|
if (hasRequiredMessageSplitter) return messageSplitter;
|
|
30798
30796
|
hasRequiredMessageSplitter = 1;
|
|
30799
30797
|
|
|
30800
|
-
const Transform = require$$0$
|
|
30798
|
+
const Transform = require$$0$7.Transform;
|
|
30801
30799
|
const MimeNode = requireMimeNode();
|
|
30802
30800
|
|
|
30803
30801
|
const MAX_HEAD_SIZE = 1 * 1024 * 1024;
|
|
@@ -31227,7 +31225,7 @@ function requireMessageJoiner () {
|
|
|
31227
31225
|
if (hasRequiredMessageJoiner) return messageJoiner;
|
|
31228
31226
|
hasRequiredMessageJoiner = 1;
|
|
31229
31227
|
|
|
31230
|
-
const Transform = require$$0$
|
|
31228
|
+
const Transform = require$$0$7.Transform;
|
|
31231
31229
|
|
|
31232
31230
|
class MessageJoiner extends Transform {
|
|
31233
31231
|
constructor() {
|
|
@@ -31267,7 +31265,7 @@ function requireFlowedDecoder () {
|
|
|
31267
31265
|
|
|
31268
31266
|
// Helper class to rewrite nodes with specific mime type
|
|
31269
31267
|
|
|
31270
|
-
const Transform = require$$0$
|
|
31268
|
+
const Transform = require$$0$7.Transform;
|
|
31271
31269
|
const libmime = requireLibmime();
|
|
31272
31270
|
|
|
31273
31271
|
/**
|
|
@@ -31330,7 +31328,7 @@ function requireNodeRewriter () {
|
|
|
31330
31328
|
|
|
31331
31329
|
// Helper class to rewrite nodes with specific mime type
|
|
31332
31330
|
|
|
31333
|
-
const Transform = require$$0$
|
|
31331
|
+
const Transform = require$$0$7.Transform;
|
|
31334
31332
|
const FlowedDecoder = requireFlowedDecoder();
|
|
31335
31333
|
|
|
31336
31334
|
/**
|
|
@@ -31532,7 +31530,7 @@ function requireNodeStreamer () {
|
|
|
31532
31530
|
|
|
31533
31531
|
// Helper class to rewrite nodes with specific mime type
|
|
31534
31532
|
|
|
31535
|
-
const Transform = require$$0$
|
|
31533
|
+
const Transform = require$$0$7.Transform;
|
|
31536
31534
|
const FlowedDecoder = requireFlowedDecoder();
|
|
31537
31535
|
|
|
31538
31536
|
/**
|
|
@@ -31659,7 +31657,7 @@ function requireChunkedPassthrough () {
|
|
|
31659
31657
|
if (hasRequiredChunkedPassthrough) return chunkedPassthrough;
|
|
31660
31658
|
hasRequiredChunkedPassthrough = 1;
|
|
31661
31659
|
|
|
31662
|
-
const { Transform } = require$$0$
|
|
31660
|
+
const { Transform } = require$$0$7;
|
|
31663
31661
|
|
|
31664
31662
|
class ChunkedPassthrough extends Transform {
|
|
31665
31663
|
constructor(options = {}) {
|
|
@@ -32585,8 +32583,8 @@ function requireStreamHash () {
|
|
|
32585
32583
|
if (hasRequiredStreamHash) return streamHash;
|
|
32586
32584
|
hasRequiredStreamHash = 1;
|
|
32587
32585
|
|
|
32588
|
-
const crypto = require$$0$
|
|
32589
|
-
const Transform = require$$0$
|
|
32586
|
+
const crypto = require$$0$8;
|
|
32587
|
+
const Transform = require$$0$7.Transform;
|
|
32590
32588
|
|
|
32591
32589
|
class StreamHash extends Transform {
|
|
32592
32590
|
constructor(attachment, algo) {
|
|
@@ -54969,7 +54967,7 @@ function requireMailParser () {
|
|
|
54969
54967
|
const mailsplit = requireMailsplit();
|
|
54970
54968
|
const libmime = requireLibmime();
|
|
54971
54969
|
const addressparser = requireAddressparser();
|
|
54972
|
-
const Transform = require$$0$
|
|
54970
|
+
const Transform = require$$0$7.Transform;
|
|
54973
54971
|
const Splitter = mailsplit.Splitter;
|
|
54974
54972
|
const ChunkedPassthrough = mailsplit.ChunkedPassthrough;
|
|
54975
54973
|
const punycode = require$$4$2;
|
|
@@ -60603,9 +60601,7 @@ class MailerUtils {
|
|
|
60603
60601
|
const { html: { codes }, } = await this.findMessage({ to: email, subject: subjectSubstring }, { timeout, receivedAfter, expectedEmailCount });
|
|
60604
60602
|
return codes?.[0];
|
|
60605
60603
|
};
|
|
60606
|
-
generateRandomEmail = (
|
|
60607
|
-
? generateRandomBypassEmail()
|
|
60608
|
-
: faker.internet.email({ provider: process.env.FASTMAIL_DOMAIN_NAME });
|
|
60604
|
+
generateRandomEmail = () => faker.internet.email({ provider: process.env.FASTMAIL_DOMAIN_NAME });
|
|
60609
60605
|
getEmailAttachment = async (attachmentName, messageSearchCriteria = {}, { timeout = 10_000, receivedAfter = dateTimeOneHourAgo(), expectedEmailCount = 1, } = {}, shouldThrowErrorOnTimeout = true) => {
|
|
60610
60606
|
if (IS_DEV_ENV) {
|
|
60611
60607
|
return this.railsEmailUtils.getEmailAttachment(attachmentName, messageSearchCriteria, { receivedAfter, expectedEmailCount, timeout: timeout / 3 }, shouldThrowErrorOnTimeout);
|
|
@@ -66989,7 +66985,7 @@ function requireGifutil () {
|
|
|
66989
66985
|
|
|
66990
66986
|
/** @namespace GifUtil */
|
|
66991
66987
|
|
|
66992
|
-
const fs =
|
|
66988
|
+
const fs = fs__default;
|
|
66993
66989
|
const ImageQ = requireImageQ();
|
|
66994
66990
|
|
|
66995
66991
|
const BitmapImage = requireBitmapimage();
|
|
@@ -69805,8 +69801,8 @@ function requireChunkstream () {
|
|
|
69805
69801
|
if (hasRequiredChunkstream) return chunkstream.exports;
|
|
69806
69802
|
hasRequiredChunkstream = 1;
|
|
69807
69803
|
|
|
69808
|
-
let util = require$$0$
|
|
69809
|
-
let Stream = require$$0$
|
|
69804
|
+
let util = require$$0$3;
|
|
69805
|
+
let Stream = require$$0$7;
|
|
69810
69806
|
|
|
69811
69807
|
let ChunkStream = (chunkstream.exports = function () {
|
|
69812
69808
|
Stream.call(this);
|
|
@@ -70317,7 +70313,7 @@ function requireFilterParseAsync () {
|
|
|
70317
70313
|
if (hasRequiredFilterParseAsync) return filterParseAsync.exports;
|
|
70318
70314
|
hasRequiredFilterParseAsync = 1;
|
|
70319
70315
|
|
|
70320
|
-
let util = require$$0$
|
|
70316
|
+
let util = require$$0$3;
|
|
70321
70317
|
let ChunkStream = requireChunkstream();
|
|
70322
70318
|
let Filter = requireFilterParse();
|
|
70323
70319
|
|
|
@@ -71113,7 +71109,7 @@ function requireParserAsync () {
|
|
|
71113
71109
|
if (hasRequiredParserAsync) return parserAsync.exports;
|
|
71114
71110
|
hasRequiredParserAsync = 1;
|
|
71115
71111
|
|
|
71116
|
-
let util = require$$0$
|
|
71112
|
+
let util = require$$0$3;
|
|
71117
71113
|
let zlib = require$$1$4;
|
|
71118
71114
|
let ChunkStream = requireChunkstream();
|
|
71119
71115
|
let FilterAsync = requireFilterParseAsync();
|
|
@@ -71774,8 +71770,8 @@ function requirePackerAsync () {
|
|
|
71774
71770
|
if (hasRequiredPackerAsync) return packerAsync.exports;
|
|
71775
71771
|
hasRequiredPackerAsync = 1;
|
|
71776
71772
|
|
|
71777
|
-
let util = require$$0$
|
|
71778
|
-
let Stream = require$$0$
|
|
71773
|
+
let util = require$$0$3;
|
|
71774
|
+
let Stream = require$$0$7;
|
|
71779
71775
|
let constants = requireConstants$4();
|
|
71780
71776
|
let Packer = requirePacker();
|
|
71781
71777
|
|
|
@@ -71836,11 +71832,11 @@ function requireSyncInflate () {
|
|
|
71836
71832
|
hasRequiredSyncInflate = 1;
|
|
71837
71833
|
(function (module, exports$1) {
|
|
71838
71834
|
|
|
71839
|
-
let assert = require$$0$
|
|
71835
|
+
let assert = require$$0$9.ok;
|
|
71840
71836
|
let zlib = require$$1$4;
|
|
71841
|
-
let util = require$$0$
|
|
71837
|
+
let util = require$$0$3;
|
|
71842
71838
|
|
|
71843
|
-
let kMaxLength = require$$0$
|
|
71839
|
+
let kMaxLength = require$$0$5.kMaxLength;
|
|
71844
71840
|
|
|
71845
71841
|
function Inflate(opts) {
|
|
71846
71842
|
if (!(this instanceof Inflate)) {
|
|
@@ -72296,8 +72292,8 @@ function requirePng () {
|
|
|
72296
72292
|
if (hasRequiredPng) return png$1;
|
|
72297
72293
|
hasRequiredPng = 1;
|
|
72298
72294
|
|
|
72299
|
-
let util = require$$0$
|
|
72300
|
-
let Stream = require$$0$
|
|
72295
|
+
let util = require$$0$3;
|
|
72296
|
+
let Stream = require$$0$7;
|
|
72301
72297
|
let Parser = requireParserAsync();
|
|
72302
72298
|
let Packer = requirePackerAsync();
|
|
72303
72299
|
let PNGSync = requirePngSync();
|
|
@@ -108024,7 +108020,7 @@ var hasRequiredSupportsColor;
|
|
|
108024
108020
|
function requireSupportsColor () {
|
|
108025
108021
|
if (hasRequiredSupportsColor) return supportsColor_1;
|
|
108026
108022
|
hasRequiredSupportsColor = 1;
|
|
108027
|
-
const os = require$$0$
|
|
108023
|
+
const os = require$$0$4;
|
|
108028
108024
|
const hasFlag = requireHasFlag();
|
|
108029
108025
|
|
|
108030
108026
|
const env = process.env;
|
|
@@ -108167,8 +108163,8 @@ function requireNode () {
|
|
|
108167
108163
|
if (hasRequiredNode) return node.exports;
|
|
108168
108164
|
hasRequiredNode = 1;
|
|
108169
108165
|
(function (module, exports$1) {
|
|
108170
|
-
const tty = require$$0$
|
|
108171
|
-
const util = require$$0$
|
|
108166
|
+
const tty = require$$0$a;
|
|
108167
|
+
const util = require$$0$3;
|
|
108172
108168
|
|
|
108173
108169
|
/**
|
|
108174
108170
|
* This is the Node.js implementation of `debug()`.
|
|
@@ -109494,7 +109490,7 @@ function requirePath () {
|
|
|
109494
109490
|
hasRequiredPath = 1;
|
|
109495
109491
|
Object.defineProperty(path, "__esModule", { value: true });
|
|
109496
109492
|
path.convertPosixPathToPattern = path.convertWindowsPathToPattern = path.convertPathToPattern = path.escapePosixPath = path.escapeWindowsPath = path.escape = path.removeLeadingDotSegment = path.makeAbsolute = path.unixify = void 0;
|
|
109497
|
-
const os = require$$0$
|
|
109493
|
+
const os = require$$0$4;
|
|
109498
109494
|
const path$1 = path__default;
|
|
109499
109495
|
const IS_WINDOWS_PLATFORM = os.platform() === 'win32';
|
|
109500
109496
|
const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\
|
|
@@ -109761,7 +109757,7 @@ function requireGlobParent () {
|
|
|
109761
109757
|
|
|
109762
109758
|
var isGlob = requireIsGlob();
|
|
109763
109759
|
var pathPosixDirname = path__default.posix.dirname;
|
|
109764
|
-
var isWin32 = require$$0$
|
|
109760
|
+
var isWin32 = require$$0$4.platform() === 'win32';
|
|
109765
109761
|
|
|
109766
109762
|
var slash = '/';
|
|
109767
109763
|
var backslash = /\\/g;
|
|
@@ -110310,7 +110306,7 @@ function requireFillRange () {
|
|
|
110310
110306
|
if (hasRequiredFillRange) return fillRange;
|
|
110311
110307
|
hasRequiredFillRange = 1;
|
|
110312
110308
|
|
|
110313
|
-
const util = require$$0$
|
|
110309
|
+
const util = require$$0$3;
|
|
110314
110310
|
const toRegexRange = requireToRegexRange();
|
|
110315
110311
|
|
|
110316
110312
|
const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
|
|
@@ -113451,7 +113447,7 @@ function requireMicromatch () {
|
|
|
113451
113447
|
if (hasRequiredMicromatch) return micromatch_1;
|
|
113452
113448
|
hasRequiredMicromatch = 1;
|
|
113453
113449
|
|
|
113454
|
-
const util = require$$0$
|
|
113450
|
+
const util = require$$0$3;
|
|
113455
113451
|
const braces = requireBraces();
|
|
113456
113452
|
const picomatch = requirePicomatch();
|
|
113457
113453
|
const utils = requireUtils$2();
|
|
@@ -114154,7 +114150,7 @@ function requireMerge2 () {
|
|
|
114154
114150
|
* Copyright (c) 2014-2020 Teambition
|
|
114155
114151
|
* Licensed under the MIT license.
|
|
114156
114152
|
*/
|
|
114157
|
-
const Stream = require$$0$
|
|
114153
|
+
const Stream = require$$0$7;
|
|
114158
114154
|
const PassThrough = Stream.PassThrough;
|
|
114159
114155
|
const slice = Array.prototype.slice;
|
|
114160
114156
|
|
|
@@ -114583,7 +114579,7 @@ function requireFs$2 () {
|
|
|
114583
114579
|
(function (exports$1) {
|
|
114584
114580
|
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
114585
114581
|
exports$1.createFileSystemAdapter = exports$1.FILE_SYSTEM_ADAPTER = void 0;
|
|
114586
|
-
const fs =
|
|
114582
|
+
const fs = fs__default;
|
|
114587
114583
|
exports$1.FILE_SYSTEM_ADAPTER = {
|
|
114588
114584
|
lstat: fs.lstat,
|
|
114589
114585
|
stat: fs.stat,
|
|
@@ -115013,7 +115009,7 @@ function requireFs () {
|
|
|
115013
115009
|
(function (exports$1) {
|
|
115014
115010
|
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
115015
115011
|
exports$1.createFileSystemAdapter = exports$1.FILE_SYSTEM_ADAPTER = void 0;
|
|
115016
|
-
const fs =
|
|
115012
|
+
const fs = fs__default;
|
|
115017
115013
|
exports$1.FILE_SYSTEM_ADAPTER = {
|
|
115018
115014
|
lstat: fs.lstat,
|
|
115019
115015
|
stat: fs.stat,
|
|
@@ -115646,7 +115642,7 @@ function requireStream$2 () {
|
|
|
115646
115642
|
if (hasRequiredStream$2) return stream$2;
|
|
115647
115643
|
hasRequiredStream$2 = 1;
|
|
115648
115644
|
Object.defineProperty(stream$2, "__esModule", { value: true });
|
|
115649
|
-
const stream_1 = require$$0$
|
|
115645
|
+
const stream_1 = require$$0$7;
|
|
115650
115646
|
const async_1 = requireAsync$3();
|
|
115651
115647
|
class StreamProvider {
|
|
115652
115648
|
constructor(_root, _settings) {
|
|
@@ -115898,7 +115894,7 @@ function requireStream$1 () {
|
|
|
115898
115894
|
if (hasRequiredStream$1) return stream$1;
|
|
115899
115895
|
hasRequiredStream$1 = 1;
|
|
115900
115896
|
Object.defineProperty(stream$1, "__esModule", { value: true });
|
|
115901
|
-
const stream_1 = require$$0$
|
|
115897
|
+
const stream_1 = require$$0$7;
|
|
115902
115898
|
const fsStat = requireOut$3();
|
|
115903
115899
|
const fsWalk = requireOut$1();
|
|
115904
115900
|
const reader_1 = requireReader();
|
|
@@ -116416,7 +116412,7 @@ function requireStream () {
|
|
|
116416
116412
|
if (hasRequiredStream) return stream;
|
|
116417
116413
|
hasRequiredStream = 1;
|
|
116418
116414
|
Object.defineProperty(stream, "__esModule", { value: true });
|
|
116419
|
-
const stream_1 = require$$0$
|
|
116415
|
+
const stream_1 = require$$0$7;
|
|
116420
116416
|
const stream_2 = requireStream$1();
|
|
116421
116417
|
const provider_1 = requireProvider();
|
|
116422
116418
|
class ProviderStream extends provider_1.default {
|
|
@@ -116542,8 +116538,8 @@ function requireSettings () {
|
|
|
116542
116538
|
(function (exports$1) {
|
|
116543
116539
|
Object.defineProperty(exports$1, "__esModule", { value: true });
|
|
116544
116540
|
exports$1.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;
|
|
116545
|
-
const fs =
|
|
116546
|
-
const os = require$$0$
|
|
116541
|
+
const fs = fs__default;
|
|
116542
|
+
const os = require$$0$4;
|
|
116547
116543
|
/**
|
|
116548
116544
|
* The `os.cpus` method can return zero. We expect the number of cores to be greater than zero.
|
|
116549
116545
|
* https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107
|
|
@@ -118856,7 +118852,7 @@ class HelpAndProfilePage {
|
|
|
118856
118852
|
expect(bodyElement).not.toHaveClass(THEMES_TEXTS.lightThemeClass),
|
|
118857
118853
|
]);
|
|
118858
118854
|
await expect(this.page.getByTestId(COMMON_SELECTORS.dropdownContainer).filter({
|
|
118859
|
-
has: this.page.getByTestId(PROFILE_SECTION_SELECTORS.
|
|
118855
|
+
has: this.page.getByTestId(PROFILE_SECTION_SELECTORS.profileExpandMenuBtn),
|
|
118860
118856
|
})).toHaveScreenshot(expectedScreenshot, { maxDiffPixelRatio: 0.1 });
|
|
118861
118857
|
});
|
|
118862
118858
|
};
|
|
@@ -119879,7 +119875,7 @@ class EditorPage {
|
|
|
119879
119875
|
calloutSelector;
|
|
119880
119876
|
videoUploadOption;
|
|
119881
119877
|
todoListSelector;
|
|
119882
|
-
filePath = "../../../e2e/assets/images/
|
|
119878
|
+
filePath = "../../../e2e/assets/images/sample.png";
|
|
119883
119879
|
videoPath = "../../../e2e/assets/files/sample.mp4";
|
|
119884
119880
|
linkUrl = faker.internet.url();
|
|
119885
119881
|
imageUrl = "https://picsum.photos/200/300";
|
|
@@ -119944,10 +119940,9 @@ class EditorPage {
|
|
|
119944
119940
|
};
|
|
119945
119941
|
verifyFontSize = async () => {
|
|
119946
119942
|
const fontsAndTexts = [];
|
|
119947
|
-
|
|
119948
|
-
|
|
119949
|
-
|
|
119950
|
-
await fontSizeDropdownButton.click();
|
|
119943
|
+
await this.page
|
|
119944
|
+
.getByTestId(NEETO_EDITOR_SELECTORS.neetoEditorFixedMenuFontSize)
|
|
119945
|
+
.click();
|
|
119951
119946
|
const headingButtons = await this.page
|
|
119952
119947
|
.getByTestId(COMMON_SELECTORS.dropdownContainer)
|
|
119953
119948
|
.getByRole("button")
|
|
@@ -119969,10 +119964,7 @@ class EditorPage {
|
|
|
119969
119964
|
level: Number(headingLevel?.slice(1)),
|
|
119970
119965
|
name: randomText,
|
|
119971
119966
|
})).toBeVisible();
|
|
119972
|
-
fontsAndTexts.push({
|
|
119973
|
-
key: fontKey,
|
|
119974
|
-
value: randomText,
|
|
119975
|
-
});
|
|
119967
|
+
fontsAndTexts.push({ key: fontKey, value: randomText });
|
|
119976
119968
|
}
|
|
119977
119969
|
return fontsAndTexts;
|
|
119978
119970
|
};
|
|
@@ -120015,18 +120007,13 @@ class EditorPage {
|
|
|
120015
120007
|
.click();
|
|
120016
120008
|
await expect(this.page.getByTestId(COMMON_SELECTORS.customDropdownContainer())).toBeVisible({ timeout: 5_000 });
|
|
120017
120009
|
}).toPass({ timeout: 30_000 });
|
|
120018
|
-
focusText = (textLocator) => {
|
|
120019
|
-
|
|
120020
|
-
|
|
120021
|
-
|
|
120022
|
-
|
|
120023
|
-
|
|
120024
|
-
|
|
120025
|
-
await expect(textLocator.locator("..")).toHaveClass(/has-focus/, {
|
|
120026
|
-
timeout: 5_000,
|
|
120027
|
-
});
|
|
120028
|
-
}).toPass({ timeout: 20_000 });
|
|
120029
|
-
};
|
|
120010
|
+
focusText = (textLocator) => expect(async () => {
|
|
120011
|
+
await textLocator.click();
|
|
120012
|
+
await this.page.keyboard.press(require$$0$4.platform() === "darwin" ? "Meta+ArrowRight" : "End");
|
|
120013
|
+
await expect(textLocator.locator("..")).toHaveClass(/has-focus/, {
|
|
120014
|
+
timeout: 5_000,
|
|
120015
|
+
});
|
|
120016
|
+
}).toPass({ timeout: 20_000 });
|
|
120030
120017
|
highlightText = async (isButtonInMoreMenu, colorIndex) => {
|
|
120031
120018
|
const randomText = await this.fillRandomText();
|
|
120032
120019
|
await this.openHighlighterContainer(isButtonInMoreMenu);
|
|
@@ -120125,9 +120112,7 @@ class EditorPage {
|
|
|
120125
120112
|
.getByTestId(COMMON_SELECTORS.dropdownIcon)
|
|
120126
120113
|
.click();
|
|
120127
120114
|
await this.uploadDeleteButton.click();
|
|
120128
|
-
await expect(this.imageWrapper).toBeHidden({
|
|
120129
|
-
timeout: 15_000,
|
|
120130
|
-
});
|
|
120115
|
+
await expect(this.imageWrapper).toBeHidden({ timeout: 15_000 });
|
|
120131
120116
|
}
|
|
120132
120117
|
return [{ key: "image-upload", value: imagePath }];
|
|
120133
120118
|
};
|
|
@@ -120173,9 +120158,7 @@ class EditorPage {
|
|
|
120173
120158
|
isButtonInMoreMenu && (await this.moreMenuSelector.click());
|
|
120174
120159
|
await this.emojiSelector.click();
|
|
120175
120160
|
const emojiContainer = this.page.getByTestId(NEETO_EDITOR_SELECTORS.emojiContainer);
|
|
120176
|
-
await expect(emojiContainer).toBeVisible({
|
|
120177
|
-
timeout: 10_000,
|
|
120178
|
-
});
|
|
120161
|
+
await expect(emojiContainer).toBeVisible({ timeout: 10_000 });
|
|
120179
120162
|
await emojiContainer
|
|
120180
120163
|
.getByPlaceholder(DESCRIPTION_EDITOR_TEXTS.search)
|
|
120181
120164
|
.fill(EMOJI_LABEL);
|
|
@@ -120239,9 +120222,7 @@ class EditorPage {
|
|
|
120239
120222
|
.getByTestId(COMMON_SELECTORS.dropdownIcon)
|
|
120240
120223
|
.click();
|
|
120241
120224
|
await this.uploadDeleteButton.click();
|
|
120242
|
-
await expect(this.imageWrapper).toBeHidden({
|
|
120243
|
-
timeout: 15_000,
|
|
120244
|
-
});
|
|
120225
|
+
await expect(this.imageWrapper).toBeHidden({ timeout: 15_000 });
|
|
120245
120226
|
}
|
|
120246
120227
|
return [{ key: "video-upload", value: this.videoPath }];
|
|
120247
120228
|
};
|
|
@@ -120334,9 +120315,44 @@ class EditorPage {
|
|
|
120334
120315
|
this.wordsUsedInEditor.push(randomText);
|
|
120335
120316
|
const randomTextLocator = this.contentField.getByText(randomText);
|
|
120336
120317
|
await randomTextLocator.scrollIntoViewIfNeeded();
|
|
120337
|
-
await randomTextLocator.
|
|
120318
|
+
const box = await randomTextLocator.boundingBox();
|
|
120319
|
+
await randomTextLocator.click({
|
|
120320
|
+
clickCount: 3,
|
|
120321
|
+
...(box && { position: { x: box.width * 0.99, y: box.height / 2 } }),
|
|
120322
|
+
});
|
|
120338
120323
|
return randomText;
|
|
120339
120324
|
};
|
|
120325
|
+
verifyDescriptionPreview = (previewLocator, keyValuePairs) => Promise.all(keyValuePairs.flatMap(({ key, value }) => {
|
|
120326
|
+
const elementReplacement = {
|
|
120327
|
+
bold: "strong",
|
|
120328
|
+
italic: "em",
|
|
120329
|
+
underline: "u",
|
|
120330
|
+
link: "a",
|
|
120331
|
+
strike: "s",
|
|
120332
|
+
bulletList: "ul li",
|
|
120333
|
+
orderedList: "ol li",
|
|
120334
|
+
codeBlock: "pre",
|
|
120335
|
+
emoji: "span",
|
|
120336
|
+
};
|
|
120337
|
+
if (key.includes("highlight")) {
|
|
120338
|
+
const highlightIndex = key.split("-")[1];
|
|
120339
|
+
return expect(previewLocator.locator(`span[style*="background-color: var(${NEETO_EDITOR_SELECTORS.highlightBg(Number(highlightIndex))})"][style*="color: var(${NEETO_EDITOR_SELECTORS.highlightText(Number(highlightIndex))})"]`, { hasText: value })).toBeVisible();
|
|
120340
|
+
}
|
|
120341
|
+
if (key === "todoList") {
|
|
120342
|
+
return expect(previewLocator.locator(NEETO_EDITOR_SELECTORS.todoList, {
|
|
120343
|
+
hasText: value,
|
|
120344
|
+
})).toBeVisible();
|
|
120345
|
+
}
|
|
120346
|
+
const replacement = elementReplacement?.[key] ?? key;
|
|
120347
|
+
if (value === undefined) {
|
|
120348
|
+
return expect(
|
|
120349
|
+
// eslint-disable-next-line playwright/no-nth-methods
|
|
120350
|
+
previewLocator.locator(replacement).first()).toBeVisible();
|
|
120351
|
+
}
|
|
120352
|
+
return expect(previewLocator.locator(key === "image-upload"
|
|
120353
|
+
? `img[src*="sample"]`
|
|
120354
|
+
: `${replacement}:has-text("${value}")`)).toBeVisible();
|
|
120355
|
+
}));
|
|
120340
120356
|
verifyDescriptionEditor = async ({ dynamicVariables, linkUrl, videoPath, filePath, imageUrl, videoUrl, highlighterCount, cannedResponseSuccessMessage, } = {}) => {
|
|
120341
120357
|
this.linkUrl = linkUrl || this.linkUrl;
|
|
120342
120358
|
this.filePath = filePath || this.filePath;
|
|
@@ -124933,6 +124949,160 @@ const generatePhoneNumberDetails = () => {
|
|
|
124933
124949
|
return { flag: country.flag, name: country.name, code: country.code, number };
|
|
124934
124950
|
};
|
|
124935
124951
|
|
|
124952
|
+
const CONFIG = {
|
|
124953
|
+
DIR: "/tmp/neeto-auth-web",
|
|
124954
|
+
LOG: "/tmp/neeto-auth-server.log",
|
|
124955
|
+
PORT: 9000,
|
|
124956
|
+
MAX_WAIT_MS: 120_000,
|
|
124957
|
+
EMAIL_INIT: "/tmp/neeto-auth-web/config/initializers/playwright_email_capture.rb",
|
|
124958
|
+
};
|
|
124959
|
+
const SCRIPTS_DIR = path$1.join(__dirname, "scripts", "neeto-auth");
|
|
124960
|
+
const escapeRubyString = (value) => value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
124961
|
+
const buildEmailCaptureInitializer = (targetApp) => {
|
|
124962
|
+
const template = fs$4.readFileSync(path$1.join(SCRIPTS_DIR, "playwright_email_capture.rb.template"), "utf-8");
|
|
124963
|
+
return template.replace("{{TARGET_APP}}", escapeRubyString(targetApp));
|
|
124964
|
+
};
|
|
124965
|
+
const log = (msg) => console.log(`[NeetoAuth] ${msg}`);
|
|
124966
|
+
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
124967
|
+
const httpCheck = (port, timeout = 3000) => new Promise(resolve => {
|
|
124968
|
+
const req = http.get(`http://localhost:${port}/`, () => resolve(true));
|
|
124969
|
+
req.on("error", () => resolve(false));
|
|
124970
|
+
req.setTimeout(timeout, () => {
|
|
124971
|
+
req.destroy();
|
|
124972
|
+
resolve(false);
|
|
124973
|
+
});
|
|
124974
|
+
});
|
|
124975
|
+
class NeetoAuthServer {
|
|
124976
|
+
process = null;
|
|
124977
|
+
targetApp;
|
|
124978
|
+
constructor(appName) {
|
|
124979
|
+
this.targetApp = STATUS_TEXTS.appName(appName);
|
|
124980
|
+
}
|
|
124981
|
+
get serverEnv() {
|
|
124982
|
+
return {
|
|
124983
|
+
...process.env,
|
|
124984
|
+
BUNDLE_PATH: undefined,
|
|
124985
|
+
RAILS_ENV: "development",
|
|
124986
|
+
POSTGRES_USER: process.env.POSTGRES_USER ?? process.env.USER ?? "postgres",
|
|
124987
|
+
};
|
|
124988
|
+
}
|
|
124989
|
+
waitForProcessExit = async (pid) => {
|
|
124990
|
+
const deadline = Date.now() + 10_000;
|
|
124991
|
+
while (Date.now() < deadline) {
|
|
124992
|
+
try {
|
|
124993
|
+
process.kill(pid, 0);
|
|
124994
|
+
await sleep(500);
|
|
124995
|
+
}
|
|
124996
|
+
catch {
|
|
124997
|
+
return;
|
|
124998
|
+
}
|
|
124999
|
+
}
|
|
125000
|
+
};
|
|
125001
|
+
killServerOnPort = async () => {
|
|
125002
|
+
try {
|
|
125003
|
+
execSync(`lsof -ti tcp:${CONFIG.PORT} | xargs kill -9`, {
|
|
125004
|
+
stdio: "ignore",
|
|
125005
|
+
});
|
|
125006
|
+
await sleep(1000);
|
|
125007
|
+
}
|
|
125008
|
+
catch {
|
|
125009
|
+
// No process on that port — nothing to kill.
|
|
125010
|
+
}
|
|
125011
|
+
};
|
|
125012
|
+
ensureSetup = () => {
|
|
125013
|
+
if (fs$4.existsSync(`${CONFIG.DIR}/Gemfile`)) {
|
|
125014
|
+
log("Already set up, skipping.");
|
|
125015
|
+
return;
|
|
125016
|
+
}
|
|
125017
|
+
if (!process.env.GITHUB_TOKEN) {
|
|
125018
|
+
throw new Error("[NeetoAuth] GITHUB_TOKEN is not set. Cannot clone neeto-auth-web.");
|
|
125019
|
+
}
|
|
125020
|
+
log("Running first-time setup...");
|
|
125021
|
+
const setupScript = path$1.join(SCRIPTS_DIR, "setup.sh");
|
|
125022
|
+
try {
|
|
125023
|
+
execSync(`bash "${setupScript}" "${CONFIG.DIR}"`, {
|
|
125024
|
+
stdio: "inherit",
|
|
125025
|
+
env: this.serverEnv,
|
|
125026
|
+
});
|
|
125027
|
+
}
|
|
125028
|
+
catch {
|
|
125029
|
+
throw new Error("[NeetoAuth] First-time setup failed. Check the output above for details.");
|
|
125030
|
+
}
|
|
125031
|
+
log("Setup complete.");
|
|
125032
|
+
};
|
|
125033
|
+
waitForServer = async (timeoutMs = CONFIG.MAX_WAIT_MS) => {
|
|
125034
|
+
const startTime = Date.now();
|
|
125035
|
+
while (Date.now() - startTime < timeoutMs) {
|
|
125036
|
+
if (this.process !== null && this.process.exitCode !== null) {
|
|
125037
|
+
const logContent = fs$4.existsSync(CONFIG.LOG)
|
|
125038
|
+
? fs$4.readFileSync(CONFIG.LOG, "utf-8")
|
|
125039
|
+
: "<no log file>";
|
|
125040
|
+
throw new Error(`[NeetoAuth] Server process exited unexpectedly with code ${this.process.exitCode}.\nLog:\n${logContent}`);
|
|
125041
|
+
}
|
|
125042
|
+
if (await httpCheck(CONFIG.PORT))
|
|
125043
|
+
return;
|
|
125044
|
+
await sleep(3000);
|
|
125045
|
+
}
|
|
125046
|
+
const logContent = fs$4.existsSync(CONFIG.LOG)
|
|
125047
|
+
? fs$4.readFileSync(CONFIG.LOG, "utf-8")
|
|
125048
|
+
: "<no log file>";
|
|
125049
|
+
throw new Error(`[NeetoAuth] Server did not start within ${timeoutMs / 1000}s.\nLog:\n${logContent}`);
|
|
125050
|
+
};
|
|
125051
|
+
injectEmailCaptureInitializer = () => {
|
|
125052
|
+
fs$4.writeFileSync(CONFIG.EMAIL_INIT, buildEmailCaptureInitializer(this.targetApp));
|
|
125053
|
+
};
|
|
125054
|
+
isRunningForCurrentApp = () => {
|
|
125055
|
+
if (!fs$4.existsSync(CONFIG.EMAIL_INIT))
|
|
125056
|
+
return false;
|
|
125057
|
+
const currentContent = fs$4.readFileSync(CONFIG.EMAIL_INIT, "utf-8");
|
|
125058
|
+
return currentContent === buildEmailCaptureInitializer(this.targetApp);
|
|
125059
|
+
};
|
|
125060
|
+
start = async () => {
|
|
125061
|
+
if (IS_STAGING_ENV)
|
|
125062
|
+
return;
|
|
125063
|
+
if (await httpCheck(CONFIG.PORT)) {
|
|
125064
|
+
if (this.isRunningForCurrentApp()) {
|
|
125065
|
+
log("Server already running for this app.");
|
|
125066
|
+
return;
|
|
125067
|
+
}
|
|
125068
|
+
log("Server running for a different app — restarting...");
|
|
125069
|
+
await this.killServerOnPort();
|
|
125070
|
+
}
|
|
125071
|
+
this.ensureSetup();
|
|
125072
|
+
this.injectEmailCaptureInitializer();
|
|
125073
|
+
log("Starting server...");
|
|
125074
|
+
const logStream = fs$4.createWriteStream(CONFIG.LOG);
|
|
125075
|
+
this.process = spawn("bundle", [
|
|
125076
|
+
"exec",
|
|
125077
|
+
"rails",
|
|
125078
|
+
"server",
|
|
125079
|
+
"-p",
|
|
125080
|
+
CONFIG.PORT.toString(),
|
|
125081
|
+
"-b",
|
|
125082
|
+
"0.0.0.0",
|
|
125083
|
+
], {
|
|
125084
|
+
cwd: CONFIG.DIR,
|
|
125085
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
125086
|
+
env: this.serverEnv,
|
|
125087
|
+
});
|
|
125088
|
+
this.process.stdout?.pipe(logStream);
|
|
125089
|
+
this.process.stderr?.pipe(logStream);
|
|
125090
|
+
await this.waitForServer();
|
|
125091
|
+
log("Server ready.");
|
|
125092
|
+
};
|
|
125093
|
+
stop = async () => {
|
|
125094
|
+
if (IS_STAGING_ENV || !this.process)
|
|
125095
|
+
return;
|
|
125096
|
+
const pid = this.process.pid;
|
|
125097
|
+
log("Stopping server...");
|
|
125098
|
+
this.process.kill("SIGTERM");
|
|
125099
|
+
this.process = null;
|
|
125100
|
+
if (pid) {
|
|
125101
|
+
await this.waitForProcessExit(pid);
|
|
125102
|
+
}
|
|
125103
|
+
};
|
|
125104
|
+
}
|
|
125105
|
+
|
|
124936
125106
|
var main$1 = {exports: {}};
|
|
124937
125107
|
|
|
124938
125108
|
var version = "17.3.1";
|
|
@@ -124944,10 +125114,10 @@ var hasRequiredMain$1;
|
|
|
124944
125114
|
function requireMain$1 () {
|
|
124945
125115
|
if (hasRequiredMain$1) return main$1.exports;
|
|
124946
125116
|
hasRequiredMain$1 = 1;
|
|
124947
|
-
const fs =
|
|
125117
|
+
const fs = fs__default;
|
|
124948
125118
|
const path = path__default;
|
|
124949
|
-
const os = require$$0$
|
|
124950
|
-
const crypto = require$$0$
|
|
125119
|
+
const os = require$$0$4;
|
|
125120
|
+
const crypto = require$$0$8;
|
|
124951
125121
|
const packageJson = require$$4;
|
|
124952
125122
|
|
|
124953
125123
|
const version = packageJson.version;
|
|
@@ -125498,7 +125668,7 @@ const envLocalPath = `${envBasePath}.local`;
|
|
|
125498
125668
|
const reporterPackageName = "@bigbinary/neeto-playwright-reporter";
|
|
125499
125669
|
process.env.TEST_ENV = process.env.TEST_ENV ?? ENVIRONMENT.development;
|
|
125500
125670
|
loadEnv(`${envBasePath}.${process.env.TEST_ENV}`);
|
|
125501
|
-
|
|
125671
|
+
fs$4.existsSync(envLocalPath) && loadEnv(envLocalPath);
|
|
125502
125672
|
const playdashStagingConfig = {
|
|
125503
125673
|
apiKey: process.env.PLAYDASH_STAGING_API_KEY,
|
|
125504
125674
|
ciBuildId: process.env.NEETO_CI_JOB_ID,
|
|
@@ -125694,5 +125864,5 @@ const definePlaywrightConfig = (overrides) => {
|
|
|
125694
125864
|
});
|
|
125695
125865
|
};
|
|
125696
125866
|
|
|
125697
|
-
export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CALENDAR_LABELS, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmbedBase, FILE_FORMATS, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailRakeClient, RailsEmailUtils, RoleApis, RolesPage, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, fillCredentialsAndSubmit, filterUtils, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
125867
|
+
export { ACTIONS, ADMIN_PANEL_SELECTORS, API_KEYS_SELECTORS, API_ROUTES, AUDIT_LOGS_SELECTORS, ApiKeysApi, ApiKeysPage, AuditLogsPage, BASE_URL, CALENDAR_LABELS, CERTIFICATE_LIMIT_EXCEEDED_MESSAGE, CERTIFICATE_LIMIT_EXCEEDED_REGEXP, CHANGELOG_WIDGET_SELECTORS, CHAT_WIDGET_SELECTORS, CHAT_WIDGET_TEXTS, COLOR, COMMON_SELECTORS, COMMON_TEXTS, COMMUNITY_TEXTS, CREDENTIALS, CURRENT_TIME_RANGES, CUSTOM_DOMAIN_SELECTORS, CUSTOM_DOMAIN_SUFFIX, CustomCommands, CustomDomainApi, CustomDomainPage, DATE_FORMATS, DATE_PICKER_SELECTORS, DATE_RANGES, DATE_TEXTS, DEFAULT_WEBHOOKS_RESPONSE_TEXT, DESCRIPTION_EDITOR_TEXTS, EMBED_SELECTORS, EMOJI_LABEL, EMPTY_STORAGE_STATE, ENGAGE_TEXTS, ENVIRONMENT, EXAMPLE_URL, EXPANDED_FONT_SIZE, EXPORT_FILE_TYPES, EditorPage, EmbedBase, FILE_FORMATS, FONT_SIZE_SELECTORS, GLOBAL_TRANSLATIONS_PATTERN, GOOGLE_ANALYTICS_SELECTORS, GOOGLE_CALENDAR_DATE_FORMAT, GOOGLE_LOGIN_SELECTORS, GOOGLE_LOGIN_TEXTS, GOOGLE_SHEETS_SELECTORS, GooglePage, HELP_CENTER_ROUTES, HELP_CENTER_SELECTORS, HelpAndProfilePage, INTEGRATIONS_TEXTS, INTEGRATION_SELECTORS, IPRestrictionsPage, IP_RESTRICTIONS_SELECTORS, IS_DEV_ENV, IS_STAGING_ENV, ImageUploader, IntegrationBase, IpRestrictionsApi, KEYBOARD_SHORTCUTS_SELECTORS, KEYBOARD_SHORTCUT_TEST_CASES, LIST_MODIFIER_SELECTORS, LIST_MODIFIER_TAGS, LOGIN_SELECTORS, MEMBER_FORM_SELECTORS, MEMBER_SELECTORS, MEMBER_TEXTS, MERGE_TAGS_SELECTORS, MICROSOFT_LOGIN_SELECTORS, MICROSOFT_LOGIN_TEXTS, MailerUtils, Member, MemberApis, MicrosoftPage, NEETO_AUTH_BASE_URL, NEETO_EDITOR_SELECTORS, NEETO_FILTERS_SELECTORS, NEETO_IMAGE_UPLOADER_SELECTORS, NEETO_ROUTES, NEETO_SEO_SELECTORS, NEETO_TEXT_MODIFIER_SELECTORS, NeetoAuthServer, NeetoTowerApi, ONBOARDING_SELECTORS, ORGANIZATION_TEXTS, OTP_EMAIL_PATTERN, OrganizationPage, PAST_TIME_RANGES, PHONE_NUMBER_FORMATS, PLURAL, PROFILE_LINKS, PROFILE_SECTION_SELECTORS, PROJECT_NAMES, PROJECT_TRANSLATIONS_PATH, ROLES_SELECTORS, ROUTES, RailsEmailRakeClient, RailsEmailUtils, RoleApis, RolesPage, SIGNUP_SELECTORS, SINGULAR, SLACK_DATA_QA_SELECTORS, SLACK_DEFAULT_CHANNEL, SLACK_SELECTORS, SLACK_WEB_TEXTS, STATUS_TEXTS, STORAGE_STATE, SecurityApi, SidebarSection, SlackApi, SlackPage, TABLE_SELECTORS, TAB_SELECTORS, TAGS_SELECTORS, TEAM_MEMBER_TEXTS, TEXT_MODIFIER_ROLES, TEXT_MODIFIER_SELECTORS, TEXT_MODIFIER_TAGS, THANK_YOU_SELECTORS, THEMES_SELECTORS, THEMES_TEXTS, THIRD_PARTY_ROUTES, TIME_RANGES, TOASTR_MESSAGES, TWILIO_SELECTORS, TagsApi, TagsPage, TeamMembers, ThankYouApi, ThankYouPage, TwilioApi, USER_AGENTS, WEBHOOK_SELECTORS, WebhookSiteApi, WebhooksPage, ZAPIER_LIMIT_EXHAUSTED_MESSAGE, ZAPIER_SELECTORS, ZAPIER_TEST_EMAIL, ZAPIER_WEB_TEXTS, ZapierPage, baseURLGenerator, basicHTMLContent, clearCredentials, commands, cpuThrottlingUsingCDP, createOrganizationViaRake, currencyUtils, dataQa, decodeQRCodeFromFile, definePlaywrightConfig, executeWithThrottledResources, extractSubdomainFromError, fillCredentialsAndSubmit, filterUtils, generatePhoneNumber, generatePhoneNumberDetails, generateRandomBypassEmail, generateRandomFile, generateStagingData, getByDataQA, getClipboardContent, getFormattedPhoneNumber, getFullUrl, getGlobalUserProps, getGlobalUserState, getImagePathAndName, getIsoCodeFromPhoneCode, getListCount, globalShortcuts, grantClipboardPermissions, hexToRGB, hexToRGBA, i18nFixture, imageRegex, initializeCredentials, initializeTestData, initializeTotp, isGithubIssueOpen, joinHyphenCase, joinString, login, loginWithoutSSO, networkConditions, networkThrottlingUsingCDP, readFileSyncIfExists, removeCredentialFile, serializeFileForBrowser, shouldSkipCustomDomainSetup, shouldSkipSetupAndTeardown, simulateClickWithDelay, simulateTypingWithDelay, skipTest, squish, stealth as stealthTest, tableUtils, toCamelCase, updateCredentials, writeDataToFile };
|
|
125698
125868
|
//# sourceMappingURL=index.js.map
|