Skip to content

Commit a9b8609

Browse files
Anton StandrikAnton Standrik
authored andcommitted
fix: return to base
1 parent 5c22e8a commit a9b8609

File tree

3 files changed

+65
-107
lines changed

3 files changed

+65
-107
lines changed

.github/workflows/ci.yml

Lines changed: 28 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -224,90 +224,33 @@ jobs:
224224
destination_dir: .
225225
force_orphan: true
226226

227-
- name: Analyze test changes
228-
id: analyze_tests
227+
- name: Count new tests
228+
id: count_tests
229229
run: |
230230
git fetch origin main:main
231-
added_tests=()
232-
deleted_tests=()
233-
skipped_tests=()
234-
base_skipped_tests=()
235-
236-
# Function to extract test names from a file
237-
extract_test_names() {
238-
local file=$1
239-
local ref=$2
240-
if git show "$ref:$file" > /dev/null 2>&1; then
241-
git show "$ref:$file" | grep -E "test\([\'\"].*[\'\"]" | sed -E "s/.*test\(['\"]([^'\"]+)['\"].*/\1/"
242-
fi
243-
}
244-
245-
# Function to extract skipped test names from a file
246-
extract_skipped_tests() {
247-
local file=$1
248-
local ref=$2
249-
if git show "$ref:$file" > /dev/null 2>&1; then
250-
git show "$ref:$file" | grep -E "test\.skip\([\'\"].*[\'\"]" | sed -E "s/.*test\.skip\(['\"]([^'\"]+)['\"].*/\1/"
251-
fi
252-
}
253-
254-
# Get skipped tests from both base and current branches
255-
for file in $(git ls-files | grep -E '^tests/suites/.*\.(spec|test)\.(ts|tsx|js|jsx)$'); do
256-
# Get skipped tests from base branch
257-
while IFS= read -r test; do
258-
if [[ -n "$test" ]]; then
259-
base_skipped_tests+=("$test")
260-
fi
261-
done < <(extract_skipped_tests "$file" main)
262-
263-
# Get skipped tests from current branch
264-
while IFS= read -r test; do
265-
if [[ -n "$test" ]]; then
266-
if ! printf '%s\n' "${base_skipped_tests[@]}" | grep -Fxq "$test"; then
267-
skipped_tests+=("$test")
268-
fi
269-
fi
270-
done < <(extract_skipped_tests "$file" HEAD)
271-
done
231+
new_tests=0
272232
273233
# Get list of changed test files
274234
for file in $(git diff --name-only main...HEAD | grep -E '^tests/suites/.*\.(spec|test)\.(ts|tsx|js|jsx)$'); do
275-
# Get test names from both versions
276-
current_tests=$(extract_test_names "$file" HEAD)
277-
base_tests=$(extract_test_names "$file" main)
278-
279-
# Find added tests (in current but not in base)
280-
while IFS= read -r test; do
281-
if [[ -n "$test" ]]; then
282-
if ! echo "$base_tests" | grep -Fxq "$test"; then
283-
# Only add if it's not a skipped test
284-
if ! printf '%s\n' "${skipped_tests[@]}" | grep -Fxq "$test"; then
285-
added_tests+=("$test")
286-
fi
287-
fi
288-
fi
289-
done <<< "$current_tests"
290-
291-
# Find deleted tests (in base but not in current)
292-
while IFS= read -r test; do
293-
if [[ -n "$test" ]]; then
294-
if ! echo "$current_tests" | grep -Fxq "$test"; then
295-
# Only count as deleted if it wasn't skipped in base
296-
if ! printf '%s\n' "${base_skipped_tests[@]}" | grep -Fxq "$test"; then
297-
deleted_tests+=("$test")
298-
fi
299-
fi
300-
fi
301-
done <<< "$base_tests"
235+
# Count tests in current version
236+
if git show HEAD:"$file" > /dev/null 2>&1; then
237+
current_tests=$(git show HEAD:"$file" | grep -E "test\([\'\"]" | wc -l)
238+
else
239+
current_tests=0
240+
fi
241+
242+
# Count tests in main version
243+
if git show main:"$file" > /dev/null 2>&1; then
244+
base_tests=$(git show main:"$file" | grep -E "test\([\'\"]" | wc -l)
245+
else
246+
base_tests=0
247+
fi
248+
249+
# Add difference to total
250+
((new_tests += current_tests - base_tests))
302251
done
303252
304-
# Create JSON output
305-
echo "added_tests=$(IFS=,; echo "${added_tests[*]}")" >> $GITHUB_OUTPUT
306-
echo "deleted_tests=$(IFS=,; echo "${deleted_tests[*]}")" >> $GITHUB_OUTPUT
307-
echo "skipped_tests=$(IFS=,; echo "${skipped_tests[*]}")" >> $GITHUB_OUTPUT
308-
echo "added_count=${#added_tests[@]}" >> $GITHUB_OUTPUT
309-
echo "deleted_count=${#deleted_tests[@]}" >> $GITHUB_OUTPUT
310-
echo "skipped_count=${#skipped_tests[@]}" >> $GITHUB_OUTPUT
253+
echo "new_tests=$new_tests" >> $GITHUB_OUTPUT
311254
312255
- name: Update PR description
313256
uses: actions/github-script@v6
@@ -350,39 +293,20 @@ jobs:
350293
};
351294
352295
const bundleStatus = percent === 'N/A' ? '⚠️' :
353-
parseFloat(percent) > 0 ? '🔺' :
354-
parseFloat(percent) < 0 ? '🔽' : '✅';
355-
356-
const addedTests = '${{ steps.analyze_tests.outputs.added_tests }}'.split(',').filter(Boolean);
357-
const deletedTests = '${{ steps.analyze_tests.outputs.deleted_tests }}'.split(',').filter(Boolean);
358-
const skippedTests = '${{ steps.analyze_tests.outputs.skipped_tests }}'.split(',').filter(Boolean);
359-
360-
const addedCount = parseInt('${{ steps.analyze_tests.outputs.added_count }}');
361-
const deletedCount = parseInt('${{ steps.analyze_tests.outputs.deleted_count }}');
362-
const skippedCount = parseInt('${{ steps.analyze_tests.outputs.skipped_count }}');
296+
parseFloat(percent) > 0 ? '🔺' :
297+
parseFloat(percent) < 0 ? '🔽' : '✅';
363298
364-
const changesText = [
365-
addedCount > 0 ? `✨${addedCount}` : '',
366-
deletedCount > 0 ? `🗑️${deletedCount}` : '',
367-
skippedCount > 0 ? `⏭️${skippedCount}` : ''
368-
].filter(Boolean).join(' ') || '➖';
299+
const newTests = parseInt('${{ steps.count_tests.outputs.new_tests }}');
300+
const testsStatus = newTests > 0 ? '✨' : '➖';
369301
370302
const ciSection = `## CI Results
371303
372304
### Test Status: <span style="color: ${statusColor};">${status}</span>
373305
📊 [Full Report](${reportUrl})
374306
375-
| Total | Passed | Failed | Flaky | Changes |
376-
|:-----:|:------:|:------:|:-----:|:-------:|
377-
| ${testResults.total} | ${testResults.passed} | ${testResults.failed} | ${testResults.flaky} | ${changesText} |
378-
379-
<details>
380-
<summary>📋 Test Changes Details</summary>
381-
382-
${addedCount > 0 ? `\n✨ **Added Tests (${addedCount}):**\n${addedTests.map(t => `- ${t}`).join('\n')}` : ''}
383-
${deletedCount > 0 ? `\n🗑️ **Deleted Tests (${deletedCount}):**\n${deletedTests.map(t => `- ${t}`).join('\n')}` : ''}
384-
${skippedCount > 0 ? `\n⏭️ **Skipped Tests (${skippedCount}):**\n${skippedTests.map(t => `- ${t}`).join('\n')}` : ''}
385-
</details>
307+
| Total | Passed | Failed | Flaky | Skipped | New Tests |
308+
|:-----:|:------:|:------:|:-----:|:-------:|:---------:|
309+
| ${testResults.total} | ${testResults.passed} | ${testResults.failed} | ${testResults.flaky} | ${testResults.skipped} | ${testsStatus} ${newTests} |
386310
387311
### Bundle Size: ${bundleStatus}
388312
Current: ${formatSize(currentSize)} | Main: ${formatSize(mainSize)}
@@ -401,7 +325,7 @@ jobs:
401325
- Bundle size is measured for the entire 'dist' directory.
402326
- 📊 indicates links to detailed reports.
403327
- 🔺 indicates increase, 🔽 decrease, and ✅ no change in bundle size.
404-
- Test changes: ✨ added, 🗑️ deleted, ⏭️ skipped
328+
- ${testsStatus} indicates ${newTests} new test cases added in this PR.
405329
</details>`;
406330
407331
const { data: pullRequest } = await github.rest.pulls.get({

tests/suites/tenant/queryEditor/queryEditor.test.ts

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,13 @@ import {tenantName} from '../../../utils/constants';
55
import {NavigationTabs, TenantPage, VISIBILITY_TIMEOUT} from '../TenantPage';
66
import {createTableQuery, longRunningQuery, longTableSelect} from '../constants';
77

8-
import {ButtonNames, ExplainResultType, QueryEditor} from './models/QueryEditor';
8+
import {
9+
ButtonNames,
10+
ExplainResultType,
11+
QueryEditor,
12+
QueryTabs,
13+
ResultTabNames,
14+
} from './models/QueryEditor';
915

1016
test.describe('Test Query Editor', async () => {
1117
const testQuery = 'SELECT 1, 2, 3, 4, 5;';
@@ -160,6 +166,34 @@ test.describe('Test Query Editor', async () => {
160166
await expect(queryEditor.isStopButtonHidden()).resolves.toBe(true);
161167
});
162168

169+
test('Changing tab inside results pane doesnt change results view', async ({page}) => {
170+
const queryEditor = new QueryEditor(page);
171+
await queryEditor.setQuery(testQuery);
172+
await queryEditor.clickGearButton();
173+
await queryEditor.settingsDialog.changeStatsLevel(STATISTICS_MODES.profile);
174+
await queryEditor.settingsDialog.clickButton(ButtonNames.Save);
175+
await queryEditor.clickRunButton();
176+
await expect(queryEditor.resultTable.isVisible()).resolves.toBe(true);
177+
await queryEditor.paneWrapper.selectTab(ResultTabNames.Schema);
178+
await expect(queryEditor.resultTable.isHidden()).resolves.toBe(true);
179+
await queryEditor.paneWrapper.selectTab(ResultTabNames.Result);
180+
await expect(queryEditor.resultTable.isVisible()).resolves.toBe(true);
181+
});
182+
183+
test('Changing tab inside editor doesnt change results view', async ({page}) => {
184+
const queryEditor = new QueryEditor(page);
185+
await queryEditor.setQuery(testQuery);
186+
await queryEditor.clickGearButton();
187+
await queryEditor.settingsDialog.changeStatsLevel(STATISTICS_MODES.profile);
188+
await queryEditor.settingsDialog.clickButton(ButtonNames.Save);
189+
await queryEditor.clickRunButton();
190+
await expect(queryEditor.resultTable.isVisible()).resolves.toBe(true);
191+
await queryEditor.queryTabs.selectTab(QueryTabs.History);
192+
await expect(queryEditor.resultTable.isHidden()).resolves.toBe(true);
193+
await queryEditor.queryTabs.selectTab(QueryTabs.Editor);
194+
await expect(queryEditor.resultTable.isVisible()).resolves.toBe(true);
195+
});
196+
163197
test('Changing tab to diagnostics doesnt change results view', async ({page}) => {
164198
const queryEditor = new QueryEditor(page);
165199
const tenantPage = new TenantPage(page);

tests/suites/tenant/queryEditor/queryStatus.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ test.describe('Test Query Execution Status', async () => {
4343
await expect(statusElement).toBe('Running');
4444
});
4545

46-
test.skip('Completed query status for completed query', async ({page}) => {
46+
test('Completed query status for completed query', async ({page}) => {
4747
const queryEditor = new QueryEditor(page);
4848

4949
await queryEditor.setQuery(testQuery);
@@ -54,7 +54,7 @@ test.describe('Test Query Execution Status', async () => {
5454
await expect(statusElement).toBe('Completed');
5555
});
5656

57-
test.skip('Failed query status for failed query', async ({page}) => {
57+
test('Failed query status for failed query', async ({page}) => {
5858
const queryEditor = new QueryEditor(page);
5959

6060
const invalidQuery = 'Select d';

0 commit comments

Comments
 (0)