Skip to content

Commit db66b0a

Browse files
authored
[test-optimization] [SDTEST-1923] Fix Playwright tests in v5 (#5788)
1 parent b9cb0ba commit db66b0a

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

integration-tests/playwright/playwright.spec.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict'
22

33
const { exec, execSync } = require('child_process')
4+
const satisfies = require('semifies')
45

56
const getPort = require('get-port')
67
const { assert } = require('chai')
@@ -55,6 +56,12 @@ const NUM_RETRIES_EFD = 3
5556
const versions = [DD_MAJOR >= 6 ? '1.38.0' : '1.18.0', 'latest']
5657

5758
versions.forEach((version) => {
59+
// TODO: Remove this once we drop suppport for v5
60+
const contextNewVersions = (...args) => {
61+
if (satisfies(version, '>=1.38.0') || version === 'latest') {
62+
context(...args)
63+
}
64+
}
5865
describe(`playwright@${version}`, () => {
5966
let sandbox, cwd, receiver, childProcess, webAppPort, webPortWithRedirect
6067

@@ -282,7 +289,7 @@ versions.forEach((version) => {
282289
)
283290
})
284291

285-
context('early flake detection', () => {
292+
contextNewVersions('early flake detection', () => {
286293
it('retries new tests', (done) => {
287294
receiver.setSettings({
288295
early_flake_detection: {
@@ -820,7 +827,7 @@ versions.forEach((version) => {
820827
})
821828
})
822829

823-
context('known tests without early flake detection', () => {
830+
contextNewVersions('known tests without early flake detection', () => {
824831
it('detects new tests without retrying them', (done) => {
825832
receiver.setSettings({
826833
known_tests_enabled: true
@@ -914,7 +921,7 @@ versions.forEach((version) => {
914921
})
915922
})
916923

917-
context('test management', () => {
924+
contextNewVersions('test management', () => {
918925
context('attempt to fix', () => {
919926
beforeEach(() => {
920927
receiver.setTestManagementTests({
@@ -1367,7 +1374,7 @@ versions.forEach((version) => {
13671374
})
13681375
})
13691376

1370-
context('active test span', () => {
1377+
contextNewVersions('active test span', () => {
13711378
it('can grab the test span and add tags', (done) => {
13721379
const receiverPromise = receiver
13731380
.gatherPayloadsMaxTimeout(({ url }) => url === '/api/v2/citestcycle', (payloads) => {
@@ -1433,7 +1440,7 @@ versions.forEach((version) => {
14331440
})
14341441
})
14351442

1436-
context('correlation between tests and RUM sessions', () => {
1443+
contextNewVersions('correlation between tests and RUM sessions', () => {
14371444
const getTestAssertions = ({ isRedirecting }) =>
14381445
receiver
14391446
.gatherPayloadsMaxTimeout(({ url }) => url === '/api/v2/citestcycle', (payloads) => {

packages/datadog-instrumentations/src/playwright.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
const satisfies = require('semifies')
2+
13
const { addHook, channel, AsyncResource } = require('./helpers/instrument')
24
const shimmer = require('../../datadog-shimmer')
35
const {
@@ -54,6 +56,7 @@ let testManagementAttemptToFixRetries = 0
5456
let testManagementTests = {}
5557
const quarantinedOrDisabledTestsAttemptToFix = []
5658
let rootDir = ''
59+
const MINIMUM_SUPPORTED_VERSION_RANGE_EFD = '>=1.38.0' // TODO: remove this once we drop support for v5
5760

5861
function getTestProperties (test) {
5962
const testName = getTestFullname(test)
@@ -524,7 +527,7 @@ function runnerHook (runnerExport, playwrightVersion) {
524527
log.error('Playwright session start error', e)
525528
}
526529

527-
if (isKnownTestsEnabled) {
530+
if (isKnownTestsEnabled && satisfies(playwrightVersion, MINIMUM_SUPPORTED_VERSION_RANGE_EFD)) {
528531
try {
529532
const { err, knownTests: receivedKnownTests } = await getChannelPromise(knownTestsCh)
530533
if (!err) {
@@ -540,7 +543,7 @@ function runnerHook (runnerExport, playwrightVersion) {
540543
}
541544
}
542545

543-
if (isTestManagementTestsEnabled) {
546+
if (isTestManagementTestsEnabled && satisfies(playwrightVersion, MINIMUM_SUPPORTED_VERSION_RANGE_EFD)) {
544547
try {
545548
const { err, testManagementTests: receivedTestManagementTests } = await getChannelPromise(testManagementTestsCh)
546549
if (!err) {
@@ -668,7 +671,7 @@ addHook({
668671
name: 'playwright',
669672
file: 'lib/runner/dispatcher.js',
670673
versions: ['>=1.38.0']
671-
}, (dispatcher, version) => dispatcherHookNew(dispatcher, dispatcherRunWrapperNew, version))
674+
}, (dispatcher) => dispatcherHookNew(dispatcher, dispatcherRunWrapperNew))
672675

673676
addHook({
674677
name: 'playwright',

0 commit comments

Comments
 (0)