From 009ba671e7724bc347d63b2ae32f59b35f607b56 Mon Sep 17 00:00:00 2001 From: Hector Hernandez <39923391+hectorhdzg@users.noreply.github.com> Date: Mon, 11 May 2026 13:47:56 -0700 Subject: [PATCH] fix(OsPlugin): use correct CS 4.0 field names ext.os.name and ext.os.ver --- .../Tests/Unit/src/OsPluginTest.ts | 22 +++++++++---------- .../src/OsPlugin.ts | 4 ++-- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/extensions/applicationinsights-osplugin-js/Tests/Unit/src/OsPluginTest.ts b/extensions/applicationinsights-osplugin-js/Tests/Unit/src/OsPluginTest.ts index 102cf9ddd..68fffa7a1 100644 --- a/extensions/applicationinsights-osplugin-js/Tests/Unit/src/OsPluginTest.ts +++ b/extensions/applicationinsights-osplugin-js/Tests/Unit/src/OsPluginTest.ts @@ -229,9 +229,8 @@ export class OsPluginTest extends AITestClass { Assert.equal(this._channelSpy.called, true); let telemetry = this._channelSpy.getCall(0).args[0]; console.log("telemetry", JSON.stringify(telemetry)); - Assert.equal(JSON.stringify(telemetry).includes("osVer"), true, "before timeout, get os version"); - Assert.deepEqual(telemetry.ext.os.os, _platformVersion.platform, "OS should be changed"); - Assert.deepEqual(telemetry.ext.os.osVer, 11, "windows 11 is detected"); + Assert.deepEqual(telemetry.ext.os.name, _platformVersion.platform, "OS name should be set"); + Assert.deepEqual(telemetry.ext.os.ver, "11", "OS version should be set as string"); } }); @@ -430,8 +429,8 @@ export class OsPluginTest extends AITestClass { Assert.equal(this._channelSpy.called, true, "event should be sent immediately from cached OS"); let telemetry = this._channelSpy.getCall(0).args[0]; - Assert.deepEqual(telemetry.ext.os.os, "Android", "cached OS should be applied to telemetry"); - Assert.deepEqual(telemetry.ext.os.osVer, 14, "cached OS version should be applied to telemetry"); + Assert.deepEqual(telemetry.ext.os.name, "Android", "cached OS name should be applied to telemetry"); + Assert.deepEqual(telemetry.ext.os.ver, "14", "cached OS version should be applied as string"); } }); @@ -463,8 +462,8 @@ export class OsPluginTest extends AITestClass { Assert.equal(this._channelSpy.called, true, "queued event should be released after lookup resolves"); let telemetry = this._channelSpy.getCall(0).args[0]; - Assert.deepEqual(telemetry.ext.os.os, _platformVersion.platform, "navigator OS should be applied"); - Assert.deepEqual(telemetry.ext.os.osVer, 11, "navigator OS version should be applied"); + Assert.deepEqual(telemetry.ext.os.name, _platformVersion.platform, "navigator OS name should be applied"); + Assert.deepEqual(telemetry.ext.os.ver, "11", "navigator OS version should be applied as string"); Assert.equal(sessionStorage.getItem("ai_osplugin"), JSON.stringify({ platform: "CachedOS", platformVersion: 99 }), "storage-disabled mode should not overwrite session storage"); } }); @@ -497,8 +496,8 @@ export class OsPluginTest extends AITestClass { Assert.equal(this._getDbgTargets().hasPendingTimeout, false); Assert.equal(this._channelSpy.called, true); let telemetry = this._channelSpy.getCall(0).args[0]; - Assert.deepEqual(telemetry.ext.os.os, _platformVersion.platform, "OS should be changed"); - Assert.deepEqual(telemetry.ext.os.osVer, 11, "windows 11 is detected"); + Assert.deepEqual(telemetry.ext.os.name, _platformVersion.platform, "OS name should be set"); + Assert.deepEqual(telemetry.ext.os.ver, "11", "OS version should be set as string"); let storedOs = JSON.parse(sessionStorage.getItem("ai_osplugin") || "{}"); QUnit.assert.equal(storedOs.platform, _platformVersion.platform, "os is stored in session storage"); QUnit.assert.equal(storedOs.platformVersion, 11, "os ver is stored in session storage"); @@ -508,9 +507,8 @@ export class OsPluginTest extends AITestClass { Assert.equal(this._getDbgTargets().queue.length, 0); Assert.equal(this._channelSpy.called, true); telemetry = this._channelSpy.getCall(0).args[0]; - Assert.equal(JSON.stringify(telemetry).includes("osVer"), true, "before timeout, get os version"); - Assert.deepEqual(telemetry.ext.os.os, _platformVersion.platform, "OS should be changed"); - Assert.deepEqual(telemetry.ext.os.osVer, 11, "Windows 11 is detected"); + Assert.deepEqual(telemetry.ext.os.name, _platformVersion.platform, "OS name should be set"); + Assert.deepEqual(telemetry.ext.os.ver, "11", "OS version should be set as string"); } }); diff --git a/extensions/applicationinsights-osplugin-js/src/OsPlugin.ts b/extensions/applicationinsights-osplugin-js/src/OsPlugin.ts index cd25f99eb..406af1123 100644 --- a/extensions/applicationinsights-osplugin-js/src/OsPlugin.ts +++ b/extensions/applicationinsights-osplugin-js/src/OsPlugin.ts @@ -262,8 +262,8 @@ export class OsPlugin extends BaseTelemetryPlugin { let mergedOS = (_os || "") + (_osVer ? asString(_osVer) : ""); setValue(extOS, "osVer", mergedOS, isString); } else { - setValue(extOS, "osVer", _osVer); - setValue(extOS, "os", _os, isString); + setValue(extOS, "name", _os, isString); + setValue(extOS, "ver", _osVer ? asString(_osVer) : undefined, isString); } } }