Skip to content

Commit c945679

Browse files
authored
Merge pull request #128 from joomcode/fix/log-messages-from-expect-methods
fix: console/file log messages from `expect` methods
2 parents 36fa8ab + 8551bb9 commit c945679

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

src/utils/expect/assertionMessageGetters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ export const assertionMessageGetters: AssertionFunctionsRecord<string> = {
1818
notEql: (unexpected) => `is not deeply equal to ${valueToString(unexpected)}`,
1919
notOk: () => 'is falsy',
2020
ok: () => 'is truthy',
21-
toBeInViewport: () => 'element intersects viewport',
21+
toBeInViewport: () => 'intersects viewport',
2222
toMatchScreenshot: (expected) => `matches the expected screenshot ${valueToString(expected)}`,
2323
};

src/utils/expect/createExpectMethod.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {LogEventStatus, LogEventType, RETRY_KEY} from '../../constants/internal'
33
import {assertValueIsDefined} from '../asserts';
44
import {getFullPackConfig} from '../config';
55
import {E2edError} from '../error';
6+
import {generalLog} from '../generalLog';
67
import {getDurationWithUnits} from '../getDurationWithUnits';
78
import {logAndGetLogEvent} from '../log';
89
import {setReadonlyProperty} from '../object';
@@ -33,18 +34,19 @@ export const createExpectMethod = (
3334
const {assertionTimeout} = getFullPackConfig();
3435

3536
const timeout = assertionTimeout + additionalAssertionTimeoutInMs;
36-
const message = getAssertionMessage === undefined ? key : getAssertionMessage(...args);
37+
const assertionMessage = getAssertionMessage === undefined ? key : getAssertionMessage(...args);
38+
const message = `Assert: ${this.description}`;
3739

3840
const selectorPropertyRetryData = (
3941
this.actualValue as {[RETRY_KEY]?: SelectorPropertyRetryData}
4042
)?.[RETRY_KEY];
4143

4244
const printedValue = isThenable(this.actualValue) ? '<Thenable>' : this.actualValue;
4345
const logEvent = logAndGetLogEvent(
44-
`Assert: ${this.description}`,
46+
message,
4547
{
4648
actualValue: printedValue,
47-
assertion: wrapStringForLogs(`value ${valueToString(printedValue)} ${message}`),
49+
assertion: wrapStringForLogs(`value ${valueToString(printedValue)} ${assertionMessage}`),
4850
assertionArguments: args,
4951
selector:
5052
selectorPropertyRetryData?.selector.description ??
@@ -79,29 +81,36 @@ export const createExpectMethod = (
7981
});
8082

8183
return assertionPromise.then(({actualValue, additionalLogFields, error}) => {
82-
Object.assign(payload, {
84+
const additionalPayload = {
8385
...additionalLogFields,
8486
error: error?.message === undefined ? undefined : removeStyleFromString(error.message),
8587
logEventStatus: error ? LogEventStatus.Failed : LogEventStatus.Passed,
86-
});
88+
};
89+
90+
Object.assign(payload, additionalPayload);
8791

8892
return addTimeoutToPromise(Promise.resolve(actualValue), timeout, timeoutError)
8993
.then(
9094
(value) => {
91-
Object.assign(payload, {
92-
actualValue: value,
93-
assertion: wrapStringForLogs(`value ${valueToString(value)} ${message}`),
94-
});
95+
Object.assign(
96+
payload,
97+
Object.assign(additionalPayload, {
98+
actualValue: value,
99+
assertion: wrapStringForLogs(`value ${valueToString(value)} ${assertionMessage}`),
100+
}),
101+
);
95102

96103
setReadonlyProperty(logEvent, 'endTime', Date.now() as UtcTimeInMs);
97104
},
98105
(actualValueResolveError: Error) => {
99-
Object.assign(payload, {actualValueResolveError});
106+
Object.assign(payload, Object.assign(additionalPayload, {actualValueResolveError}));
100107

101108
setReadonlyProperty(logEvent, 'endTime', Date.now() as UtcTimeInMs);
102109
},
103110
)
104111
.then(() => {
112+
generalLog(`Assert "${this.description}" completed`, additionalPayload);
113+
105114
if (error) {
106115
throw error;
107116
}

src/utils/selectors/Selector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ class Selector {
325325
* Custom string presentation of selector.
326326
*/
327327
toString(): string {
328-
return `Selector for ${this.description}`;
328+
return `<Selector for ${this.description}>`;
329329
}
330330

331331
withText(textOrRegExp: RegExp | string): Selector {

0 commit comments

Comments
 (0)