[main] [BUG] Submitting NaN via trackEvent results in HTTP 400 Error Code #2132 (#2232)

This commit is contained in:
siyuniu-ms 2024-01-11 17:22:10 -08:00 коммит произвёл GitHub
Родитель e08a7e07a0
Коммит 28d9c1391c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 2347 добавлений и 752 удалений

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -79,6 +79,35 @@ export class ValidateE2ETests extends AITestClass {
})
});
this.testCaseAsync({
name: 'E2E.GenericTests: trackEvent sends to backend with NaN value could be handled correctly',
stepDelay: this.delay,
steps: [
() => {
const customeProperties = {
nanValue: NaN,
}
this._ai.trackEvent({ name: 'event', properties: { "prop1": NaN, "prop2": NaN }}, customeProperties);
}]
.concat(this.waitForResponse())
.concat(this.boilerPlateAsserts)
.concat(() => {
const acceptedItems = this.getPayloadMessages(this.successSpy).length;
Assert.equal(1, acceptedItems, "backend should accept two events");
if (acceptedItems != 1) {
this.dumpPayloadMessages(this.successSpy);
}
const payloadStr: string[] = this.getPayloadMessages(this.successSpy);
if (payloadStr.length > 0) {
const payload = JSON.parse(payloadStr[0]);
const data = payload.data;
Assert.ok(data && data.baseData);
Assert.equal(null, data.baseData.measurements["nanValue"]);
Assert.equal("NaN", data.baseData.properties["prop1"]);
}
})
});
this.testCaseAsync({
name: "Validate that track event takes all type of characters",
stepDelay: this.delay,

Просмотреть файл

@ -149,11 +149,7 @@ export class Serializer {
output[field] = "null";
} else {
const num = parseFloat(value);
if (isNaN(num)) {
output[field] = "NaN";
} else {
output[field] = num;
}
output[field] = num;
}
} else {
output[field] = "invalid field: " + name + " is of unknown type.";

893
common/config/rush/npm-shrinkwrap.json сгенерированный

Разница между файлами не показана из-за своего большого размера Загрузить разницу