Skip to content

Commit 2d412e5

Browse files
committed
feat(ask-ai): add version-specific naming for Ask AI widget
- Add version-specific product names in products.yml: - name__v2: InfluxDB OSS v2 - name__v1: InfluxDB OSS v1 - name__vcloud: InfluxDB Cloud (TSM) - Update ask-ai.ts to use getVersionSpecificConfig() for product names - Fix page-context.js to use products.influxdb_cloud instead of products.cloud - Add UI tests verifying version-specific naming in Kapa widget script tags All 34 tests passing, including new tests for v2, v1, and Cloud (TSM) version naming.
1 parent 2d3f0e4 commit 2d412e5

File tree

4 files changed

+67
-3
lines changed

4 files changed

+67
-3
lines changed

assets/js/ask-ai.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,9 @@ function getProductExampleQuestions(): string {
188188
return questions.join(',');
189189
}
190190

191-
const productName = productData?.product?.name || 'InfluxDB';
191+
// Get version-specific product name if available
192+
const productName =
193+
(getVersionSpecificConfig('name') as string | undefined) || 'InfluxDB';
192194

193195
// Append version hint to each question
194196
const questionsWithHint = questions.map((question) => {
@@ -217,7 +219,9 @@ function getVersionContext(): string {
217219
return '';
218220
}
219221

220-
const productName = productData?.product?.name || 'InfluxDB';
222+
// Get version-specific product name if available
223+
const productName =
224+
(getVersionSpecificConfig('name') as string | undefined) || 'InfluxDB';
221225

222226
return `My version: ${productName}`;
223227
}

assets/js/page-context.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function getCurrentProductData() {
99
const mappings = [
1010
{
1111
pattern: /\/influxdb\/cloud\//,
12-
product: products.cloud,
12+
product: products.influxdb_cloud,
1313
urls: influxdbUrls.influxdb_cloud,
1414
},
1515
{

cypress/e2e/page-context.cy.js

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,63 @@ describe('Ask AI Widget Configuration', function () {
162162
expect(questions).to.include('configure the server');
163163
expect(questions).to.include('replicate data from OSS');
164164
expect(questions).to.include('query data');
165+
expect(questions).to.include('My version: InfluxDB Enterprise v1');
166+
});
167+
});
168+
});
169+
170+
describe('InfluxDB OSS v2', function () {
171+
it('should configure v2-specific questions with version name in Kapa widget', function () {
172+
cy.visit('/influxdb/v2/get-started/');
173+
174+
cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => {
175+
const questions = $script.attr('data-modal-example-questions');
176+
// Check for v2-specific questions
177+
expect(questions).to.include('How do I write and query data?');
178+
expect(questions).to.include('How can I migrate to InfluxDB 3?');
179+
expect(questions).to.include('How do I manage auth tokens?');
180+
// Verify version-specific naming
181+
expect(questions).to.include('My version: InfluxDB OSS v2');
182+
// Should NOT have v1-specific questions
183+
expect(questions).to.not.include('continuous queries');
184+
expect(questions).to.not.include('retention policies');
185+
});
186+
});
187+
});
188+
189+
describe('InfluxDB OSS v1', function () {
190+
it('should configure v1-specific questions with version name in Kapa widget', function () {
191+
cy.visit('/influxdb/v1/');
192+
193+
cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => {
194+
const questions = $script.attr('data-modal-example-questions');
195+
// Check for v1-specific questions
196+
expect(questions).to.include('How do I query data with InfluxQL?');
197+
expect(questions).to.include('How do I set up continuous queries?');
198+
expect(questions).to.include('How do I manage retention policies?');
199+
// Verify version-specific naming
200+
expect(questions).to.include('My version: InfluxDB OSS v1');
201+
// Should NOT have v2-specific questions
202+
expect(questions).to.not.include('migrate to InfluxDB 3');
203+
expect(questions).to.not.include('auth tokens');
204+
});
205+
});
206+
});
207+
208+
describe('InfluxDB Cloud (TSM)', function () {
209+
it('should configure Cloud-specific questions with correct naming in Kapa widget', function () {
210+
cy.visit('/influxdb/cloud/');
211+
212+
cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => {
213+
const questions = $script.attr('data-modal-example-questions');
214+
// Check for Cloud-specific questions
215+
expect(questions).to.include('How do I write and query data?');
216+
expect(questions).to.include(
217+
'How is Cloud (TSM) different from Cloud Serverless?'
218+
);
219+
expect(questions).to.include('How do I manage auth tokens?');
220+
// Verify version-specific naming includes "(TSM)"
221+
expect(questions).to.include('My version: InfluxDB Cloud (TSM)');
165222
});
166223
});
167224
});

data/products.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,8 @@ influxdb3_clustered:
160160

161161
influxdb:
162162
name: InfluxDB
163+
name__v2: InfluxDB OSS v2
164+
name__v1: InfluxDB OSS v1
163165
altname: InfluxDB OSS
164166
namespace: influxdb
165167
succeeded_by: influxdb3_core
@@ -202,6 +204,7 @@ influxdb:
202204

203205
influxdb_cloud:
204206
name: InfluxDB Cloud (TSM)
207+
name__vcloud: InfluxDB Cloud (TSM)
205208
altname: InfluxDB Cloud
206209
namespace: influxdb
207210
menu_category: managed

0 commit comments

Comments
 (0)