Skip to content

Commit 819cfcf

Browse files
Anton StandrikAnton Standrik
authored andcommitted
fix: test
1 parent 9ec4551 commit 819cfcf

File tree

3 files changed

+71
-63
lines changed

3 files changed

+71
-63
lines changed

.github/workflows/ci.yml

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

227-
- name: Count new tests
228-
id: count_tests
227+
- name: Analyze test changes
228+
id: analyze_tests
229229
run: |
230230
git fetch origin main:main
231-
new_tests=0
231+
added_tests=()
232+
deleted_tests=()
233+
skipped_tests=()
234+
235+
# Function to extract test names from a file
236+
extract_test_names() {
237+
local file=$1
238+
local ref=$2
239+
if git show "$ref:$file" > /dev/null 2>&1; then
240+
git show "$ref:$file" | grep -E "test\([\'\"].*[\'\"]" | sed -E "s/.*test\(['\"]([^'\"]+)['\"].*/\1/"
241+
fi
242+
}
232243
233244
# Get list of changed test files
234245
for file in $(git diff --name-only main...HEAD | grep -E '^tests/suites/.*\.(spec|test)\.(ts|tsx|js|jsx)$'); do
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))
246+
# Get test names from both versions
247+
current_tests=$(extract_test_names "$file" HEAD)
248+
base_tests=$(extract_test_names "$file" main)
249+
250+
# Compare tests
251+
while IFS= read -r test; do
252+
if [[ -n "$test" ]]; then
253+
if ! echo "$base_tests" | grep -Fxq "$test"; then
254+
added_tests+=("$test")
255+
fi
256+
fi
257+
done <<< "$current_tests"
258+
259+
while IFS= read -r test; do
260+
if [[ -n "$test" ]]; then
261+
if ! echo "$current_tests" | grep -Fxq "$test"; then
262+
deleted_tests+=("$test")
263+
fi
264+
fi
265+
done <<< "$base_tests"
251266
done
252267
253-
echo "new_tests=$new_tests" >> $GITHUB_OUTPUT
268+
# Get skipped tests from test results
269+
if [ -f "playwright-artifacts/test-results.json" ]; then
270+
skipped_tests=($(jq -r '.suites[].specs[] | select(.ok == false and .skipped == true) | .title' playwright-artifacts/test-results.json))
271+
fi
272+
273+
# Create JSON output
274+
echo "added_tests=$(IFS=,; echo "${added_tests[*]}")" >> $GITHUB_OUTPUT
275+
echo "deleted_tests=$(IFS=,; echo "${deleted_tests[*]}")" >> $GITHUB_OUTPUT
276+
echo "skipped_tests=$(IFS=,; echo "${skipped_tests[*]}")" >> $GITHUB_OUTPUT
277+
echo "added_count=${#added_tests[@]}" >> $GITHUB_OUTPUT
278+
echo "deleted_count=${#deleted_tests[@]}" >> $GITHUB_OUTPUT
279+
echo "skipped_count=${#skipped_tests[@]}" >> $GITHUB_OUTPUT
254280
255281
- name: Update PR description
256282
uses: actions/github-script@v6
@@ -296,17 +322,33 @@ jobs:
296322
parseFloat(percent) > 0 ? '🔺' :
297323
parseFloat(percent) < 0 ? '🔽' : '✅';
298324
299-
const newTests = parseInt('${{ steps.count_tests.outputs.new_tests }}');
300-
const testsStatus = newTests > 0 ? '✨' : '➖';
325+
const addedTests = '${{ steps.analyze_tests.outputs.added_tests }}'.split(',').filter(Boolean);
326+
const deletedTests = '${{ steps.analyze_tests.outputs.deleted_tests }}'.split(',').filter(Boolean);
327+
const skippedTests = '${{ steps.analyze_tests.outputs.skipped_tests }}'.split(',').filter(Boolean);
328+
329+
const addedCount = parseInt('${{ steps.analyze_tests.outputs.added_count }}');
330+
const deletedCount = parseInt('${{ steps.analyze_tests.outputs.deleted_count }}');
331+
const skippedCount = parseInt('${{ steps.analyze_tests.outputs.skipped_count }}');
332+
333+
const changesText = [
334+
addedCount > 0 ? `✨${addedCount}` : '',
335+
deletedCount > 0 ? `🗑️${deletedCount}` : '',
336+
skippedCount > 0 ? `⏭️${skippedCount}` : ''
337+
].filter(Boolean).join(' ') || '➖';
301338
302339
const ciSection = `## CI Results
303340
304341
### Test Status: <span style="color: ${statusColor};">${status}</span>
305342
📊 [Full Report](${reportUrl})
306343
307-
| Total | Passed | Failed | Flaky | Skipped | New Tests |
308-
|:-----:|:------:|:------:|:-----:|:-------:|:---------:|
309-
| ${testResults.total} | ${testResults.passed} | ${testResults.failed} | ${testResults.flaky} | ${testResults.skipped} | ${testsStatus} ${newTests} |
344+
| Total | Passed | Failed | Flaky | Changes |
345+
|:-----:|:------:|:------:|:-----:|:-------:|
346+
| ${testResults.total} | ${testResults.passed} | ${testResults.failed} | ${testResults.flaky} | ${changesText} |
347+
348+
### Test Changes Details
349+
${addedCount > 0 ? `\n✨ **Added Tests (${addedCount}):**\n${addedTests.map(t => `- ${t}`).join('\n')}` : ''}
350+
${deletedCount > 0 ? `\n🗑️ **Deleted Tests (${deletedCount}):**\n${deletedTests.map(t => `- ${t}`).join('\n')}` : ''}
351+
${skippedCount > 0 ? `\n⏭️ **Skipped Tests (${skippedCount}):**\n${skippedTests.map(t => `- ${t}`).join('\n')}` : ''}
310352
311353
### Bundle Size: ${bundleStatus}
312354
Current: ${formatSize(currentSize)} | Main: ${formatSize(mainSize)}
@@ -325,7 +367,7 @@ jobs:
325367
- Bundle size is measured for the entire 'dist' directory.
326368
- 📊 indicates links to detailed reports.
327369
- 🔺 indicates increase, 🔽 decrease, and ✅ no change in bundle size.
328-
- ${testsStatus} indicates ${newTests} new test cases added in this PR.
370+
- Test changes: ✨ added, 🗑️ deleted, ⏭️ skipped
329371
</details>`;
330372
331373
const { data: pullRequest } = await github.rest.pulls.get({

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

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

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

1610
test.describe('Test Query Editor', async () => {
1711
const testQuery = 'SELECT 1, 2, 3, 4, 5;';
@@ -166,34 +160,6 @@ test.describe('Test Query Editor', async () => {
166160
await expect(queryEditor.isStopButtonHidden()).resolves.toBe(true);
167161
});
168162

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-
197163
test('Changing tab to diagnostics doesnt change results view', async ({page}) => {
198164
const queryEditor = new QueryEditor(page);
199165
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('Completed query status for completed query', async ({page}) => {
46+
test.skip('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('Failed query status for failed query', async ({page}) => {
57+
test.skip('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)