Skip to content

Commit c0d30ae

Browse files
authored
Upgrade attempt_to_fix to v3 (#5670)
1 parent f9b709b commit c0d30ae

File tree

18 files changed

+90
-20
lines changed

18 files changed

+90
-20
lines changed

integration-tests/cucumber/cucumber.spec.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2129,11 +2129,12 @@ versions.forEach(version => {
21292129
}
21302130
if (isLastAttempt) {
21312131
if (shouldFailSometimes) {
2132-
assert.notProperty(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED)
2132+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
21332133
assert.notProperty(test.meta, TEST_HAS_FAILED_ALL_RETRIES)
21342134
} else if (shouldAlwaysPass) {
21352135
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'true')
21362136
} else {
2137+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
21372138
assert.propertyVal(test.meta, TEST_HAS_FAILED_ALL_RETRIES, 'true')
21382139
}
21392140
}
@@ -2497,7 +2498,7 @@ versions.forEach(version => {
24972498
assert.equal(metadata.test[DD_CAPABILITIES_AUTO_TEST_RETRIES], '1')
24982499
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_QUARANTINE], '1')
24992500
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_DISABLE], '1')
2500-
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '2')
2501+
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '3')
25012502
// capabilities logic does not overwrite test session name
25022503
assert.equal(metadata.test[TEST_SESSION_NAME], 'my-test-session-name')
25032504
})

integration-tests/cypress/cypress.spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,13 +1875,13 @@ moduleTypes.forEach(({
18751875
if (isLastAttempt) {
18761876
if (shouldFailSometimes) {
18771877
assert.notProperty(test.meta, TEST_HAS_FAILED_ALL_RETRIES)
1878-
assert.notProperty(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED)
1878+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
18791879
} else if (shouldAlwaysPass) {
18801880
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'true')
18811881
assert.notProperty(test.meta, TEST_HAS_FAILED_ALL_RETRIES)
18821882
} else {
18831883
assert.propertyVal(test.meta, TEST_HAS_FAILED_ALL_RETRIES, 'true')
1884-
assert.notProperty(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED)
1884+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
18851885
}
18861886
}
18871887
}
@@ -2239,7 +2239,7 @@ moduleTypes.forEach(({
22392239
assert.equal(metadata.test[DD_CAPABILITIES_AUTO_TEST_RETRIES], '1')
22402240
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_QUARANTINE], '1')
22412241
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_DISABLE], '1')
2242-
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '2')
2242+
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '3')
22432243
// capabilities logic does not overwrite test session name
22442244
assert.equal(metadata.test[TEST_SESSION_NAME], 'my-test-session-name')
22452245
})

integration-tests/jest/jest.spec.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3051,9 +3051,10 @@ describe('jest CommonJS', () => {
30513051
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'true')
30523052
} else if (shouldFailSometimes) {
30533053
assert.notProperty(test.meta, TEST_HAS_FAILED_ALL_RETRIES)
3054-
assert.notProperty(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED)
3054+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
30553055
} else {
30563056
assert.propertyVal(test.meta, TEST_HAS_FAILED_ALL_RETRIES, 'true')
3057+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
30573058
}
30583059
}
30593060
}
@@ -3491,7 +3492,7 @@ describe('jest CommonJS', () => {
34913492
assert.equal(metadata.test[DD_CAPABILITIES_AUTO_TEST_RETRIES], '1')
34923493
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_QUARANTINE], '1')
34933494
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_DISABLE], '1')
3494-
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '2')
3495+
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '3')
34953496
// capabilities logic does not overwrite test session name
34963497
assert.equal(metadata.test[TEST_SESSION_NAME], 'my-test-session-name')
34973498
})

integration-tests/mocha/mocha.spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2670,10 +2670,10 @@ describe('mocha CommonJS', function () {
26702670
assert.notProperty(test.meta, TEST_HAS_FAILED_ALL_RETRIES)
26712671
} else if (shouldFailSometimes) {
26722672
assert.notProperty(test.meta, TEST_HAS_FAILED_ALL_RETRIES)
2673-
assert.notProperty(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED)
2673+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
26742674
} else {
26752675
assert.propertyVal(test.meta, TEST_HAS_FAILED_ALL_RETRIES, 'true')
2676-
assert.notProperty(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED)
2676+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
26772677
}
26782678
}
26792679
}
@@ -3069,7 +3069,7 @@ describe('mocha CommonJS', function () {
30693069
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], undefined)
30703070
} else {
30713071
assert.equal(metadata.test[DD_CAPABILITIES_TEST_IMPACT_ANALYSIS], '1')
3072-
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '2')
3072+
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '3')
30733073
}
30743074
assert.equal(metadata.test[DD_CAPABILITIES_EARLY_FLAKE_DETECTION], '1')
30753075
assert.equal(metadata.test[DD_CAPABILITIES_AUTO_TEST_RETRIES], '1')

integration-tests/playwright/playwright.spec.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1000,17 +1000,24 @@ versions.forEach((version) => {
10001000
test.meta[TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED] === 'true'
10011001
).length
10021002

1003+
const testsMarkedAsFailed = attemptedToFixTests.filter(test =>
1004+
test.meta[TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED] === 'false'
1005+
).length
1006+
10031007
if (isAttemptingToFix) {
10041008
assert.equal(countAttemptToFixTests, attemptedToFixTests.length)
10051009
assert.equal(countRetriedAttemptToFixTests, attemptedToFixTests.length - 1)
10061010
if (shouldAlwaysPass) {
10071011
assert.equal(testsMarkedAsFailedAllRetries, 0)
1012+
assert.equal(testsMarkedAsFailed, 0)
10081013
assert.equal(testsMarkedAsPassedAllRetries, 1)
10091014
} else if (shouldFailSometimes) {
10101015
assert.equal(testsMarkedAsFailedAllRetries, 0)
1016+
assert.equal(testsMarkedAsFailed, 1)
10111017
assert.equal(testsMarkedAsPassedAllRetries, 0)
10121018
} else { // always fail
10131019
assert.equal(testsMarkedAsFailedAllRetries, 1)
1020+
assert.equal(testsMarkedAsFailed, 1)
10141021
assert.equal(testsMarkedAsPassedAllRetries, 0)
10151022
}
10161023
} else {
@@ -1337,7 +1344,7 @@ versions.forEach((version) => {
13371344
assert.equal(metadata.test[DD_CAPABILITIES_AUTO_TEST_RETRIES], '1')
13381345
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_QUARANTINE], '1')
13391346
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_DISABLE], '1')
1340-
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '2')
1347+
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '3')
13411348
// capabilities logic does not overwrite test session name
13421349
assert.equal(metadata.test[TEST_SESSION_NAME], 'my-test-session-name')
13431350
})

integration-tests/vitest/vitest.spec.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1431,10 +1431,11 @@ versions.forEach((version) => {
14311431
if (shouldAlwaysPass) {
14321432
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'true')
14331433
} else if (shouldFailSometimes) {
1434-
assert.notProperty(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED)
1434+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
14351435
assert.notProperty(test.meta, TEST_HAS_FAILED_ALL_RETRIES)
14361436
} else {
14371437
assert.propertyVal(test.meta, TEST_HAS_FAILED_ALL_RETRIES, 'true')
1438+
assert.propertyVal(test.meta, TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED, 'false')
14381439
}
14391440
}
14401441
} else {
@@ -1807,7 +1808,7 @@ versions.forEach((version) => {
18071808
assert.equal(metadata.test[DD_CAPABILITIES_AUTO_TEST_RETRIES], '1')
18081809
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_QUARANTINE], '1')
18091810
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_DISABLE], '1')
1810-
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '2')
1811+
assert.equal(metadata.test[DD_CAPABILITIES_TEST_MANAGEMENT_ATTEMPT_TO_FIX], '3')
18111812
// capabilities logic does not overwrite test session name
18121813
assert.equal(metadata.test[TEST_SESSION_NAME], 'my-test-session-name')
18131814
})

packages/datadog-instrumentations/src/cucumber.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,7 @@ function wrapRun (pl, isLatestVersion) {
309309
let isAttemptToFixRetry = false
310310
let hasFailedAllRetries = false
311311
let hasPassedAllRetries = false
312+
let hasFailedAttemptToFix = false
312313
let isDisabled = false
313314
let isQuarantined = false
314315

@@ -330,6 +331,7 @@ function wrapRun (pl, isLatestVersion) {
330331
}, { pass: 0, fail: 0 })
331332
hasFailedAllRetries = fail === testManagementAttemptToFixRetries + 1
332333
hasPassedAllRetries = pass === testManagementAttemptToFixRetries + 1
334+
hasFailedAttemptToFix = fail > 0
333335
}
334336
}
335337
}
@@ -360,6 +362,7 @@ function wrapRun (pl, isLatestVersion) {
360362
isAttemptToFixRetry,
361363
hasFailedAllRetries,
362364
hasPassedAllRetries,
365+
hasFailedAttemptToFix,
363366
isDisabled,
364367
isQuarantined
365368
})

packages/datadog-instrumentations/src/jest.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
408408
event.test.fn = originalTestFns.get(event.test)
409409

410410
let attemptToFixPassed = false
411+
let attemptToFixFailed = false
411412
let failedAllTests = false
412413
let isAttemptToFix = false
413414
if (this.isTestManagementTestsEnabled) {
@@ -425,6 +426,9 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
425426
// If it is, we'll set the failedAllTests flag to true if all the tests failed
426427
// If all tests passed, we'll set the attemptToFixPassed flag to true
427428
if (testStatuses.length === testManagementAttemptToFixRetries + 1) {
429+
if (testStatuses.some(status => status === 'fail')) {
430+
attemptToFixFailed = true
431+
}
428432
if (testStatuses.every(status => status === 'fail')) {
429433
failedAllTests = true
430434
} else if (testStatuses.every(status => status === 'pass')) {
@@ -490,6 +494,7 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
490494
testStartLine: getTestLineStart(event.test.asyncError, this.testSuite),
491495
attemptToFixPassed,
492496
failedAllTests,
497+
attemptToFixFailed,
493498
isAtrRetry
494499
})
495500
})

packages/datadog-instrumentations/src/mocha/utils.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ function getOnTestEndHandler (config) {
265265

266266
let hasFailedAllRetries = false
267267
let attemptToFixPassed = false
268+
let attemptToFixFailed = false
268269

269270
const testName = getTestFullName(test)
270271

@@ -278,6 +279,9 @@ function getOnTestEndHandler (config) {
278279
const isLastAttempt = testStatuses.length === config.testManagementAttemptToFixRetries + 1
279280

280281
if (test._ddIsAttemptToFix && isLastAttempt) {
282+
if (testStatuses.some(status => status === 'fail')) {
283+
attemptToFixFailed = true
284+
}
281285
if (testStatuses.every(status => status === 'fail')) {
282286
hasFailedAllRetries = true
283287
} else if (testStatuses.every(status => status === 'pass')) {
@@ -299,6 +303,7 @@ function getOnTestEndHandler (config) {
299303
isLastRetry: getIsLastRetry(test),
300304
hasFailedAllRetries,
301305
attemptToFixPassed,
306+
attemptToFixFailed,
302307
isAttemptToFixRetry,
303308
isAtrRetry
304309
})

packages/datadog-instrumentations/src/playwright.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,9 @@ function testEndHandler (test, annotations, testStatus, error, isTimeout, isMain
337337
}
338338

339339
if (testStatuses.length === testManagementAttemptToFixRetries + 1) {
340+
if (testStatuses.some(status => status === 'fail')) {
341+
test._ddHasFailedAttemptToFixRetries = true
342+
}
340343
if (testStatuses.every(status => status === 'fail')) {
341344
test._ddHasFailedAllRetries = true
342345
} else if (testStatuses.every(status => status === 'pass')) {
@@ -366,6 +369,7 @@ function testEndHandler (test, annotations, testStatus, error, isTimeout, isMain
366369
isEfdRetry: test._ddIsEfdRetry,
367370
hasFailedAllRetries: test._ddHasFailedAllRetries,
368371
hasPassedAttemptToFixRetries: test._ddHasPassedAttemptToFixRetries,
372+
hasFailedAttemptToFixRetries: test._ddHasFailedAttemptToFixRetries,
369373
isAtrRetry
370374
})
371375
})
@@ -492,6 +496,7 @@ function dispatcherHookNew (dispatcherExport, runWrapper) {
492496
_ddIsEfdRetry: test._ddIsEfdRetry,
493497
_ddHasFailedAllRetries: test._ddHasFailedAllRetries,
494498
_ddHasPassedAttemptToFixRetries: test._ddHasPassedAttemptToFixRetries,
499+
_ddHasFailedAttemptToFixRetries: test._ddHasFailedAttemptToFixRetries,
495500
_ddIsAtrRetry: isAtrRetry
496501
}
497502
})
@@ -986,6 +991,7 @@ addHook({
986991
isAttemptToFixRetry: test._ddIsAttemptToFixRetry,
987992
hasFailedAllRetries: test._ddHasFailedAllRetries,
988993
hasPassedAttemptToFixRetries: test._ddHasPassedAttemptToFixRetries,
994+
hasFailedAttemptToFixRetries: test._ddHasFailedAttemptToFixRetries,
989995
isAtrRetry: test._ddIsAtrRetry,
990996
onDone
991997
})

0 commit comments

Comments
 (0)