fix: e2e-failed (#3828)

* fix: e2e-failed

* fix: ci

* fix: ci bug

* fix: ci(skip server ci)

* fix: ci [skip ci]

* fix: ci(skip server ci)

* fix: ci

* fix: ci

* fix: remove skip if

---------

Co-authored-by: dream2023 <1098626505@qq.com>
This commit is contained in:
chenos 2024-03-27 12:03:00 +08:00 committed by GitHub
parent 78697e02be
commit d04a60d386
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 36 additions and 20 deletions

View File

@ -13,6 +13,8 @@ on:
- 'packages/core/acl/**' - 'packages/core/acl/**'
- 'packages/core/actions/**' - 'packages/core/actions/**'
- 'packages/core/database/**' - 'packages/core/database/**'
- 'packages/core/resourcer/**'
- 'packages/core/data-source-manager/**'
- 'packages/core/server/**' - 'packages/core/server/**'
- 'packages/core/utils/**' - 'packages/core/utils/**'
- 'packages/plugins/**/src/server/**' - 'packages/plugins/**/src/server/**'
@ -23,6 +25,8 @@ on:
- 'packages/core/acl/**' - 'packages/core/acl/**'
- 'packages/core/actions/**' - 'packages/core/actions/**'
- 'packages/core/database/**' - 'packages/core/database/**'
- 'packages/core/resourcer/**'
- 'packages/core/data-source-manager/**'
- 'packages/core/server/**' - 'packages/core/server/**'
- 'packages/core/utils/**' - 'packages/core/utils/**'
- 'packages/plugins/**/src/server/**' - 'packages/plugins/**/src/server/**'
@ -30,7 +34,6 @@ on:
jobs: jobs:
sqlite-test: sqlite-test:
if: "!contains(github.event.head_commit.message, 'skip server ci'))"
strategy: strategy:
matrix: matrix:
node_version: ['18'] node_version: ['18']
@ -68,7 +71,6 @@ jobs:
timeout-minutes: 40 timeout-minutes: 40
postgres-test: postgres-test:
if: "!contains(github.event.head_commit.message, 'skip server ci'))"
strategy: strategy:
matrix: matrix:
node_version: ['18'] node_version: ['18']
@ -133,7 +135,6 @@ jobs:
timeout-minutes: 40 timeout-minutes: 40
mysql-test: mysql-test:
if: "!contains(github.event.head_commit.message, 'skip server ci'))"
strategy: strategy:
matrix: matrix:
node_version: ['18'] node_version: ['18']
@ -184,7 +185,6 @@ jobs:
DB_TEST_PREFIX: test_ DB_TEST_PREFIX: test_
timeout-minutes: 40 timeout-minutes: 40
mariadb-test: mariadb-test:
if: "!contains(github.event.head_commit.message, 'skip server ci'))"
strategy: strategy:
matrix: matrix:
node_version: ['18'] node_version: ['18']

View File

@ -21,7 +21,6 @@ on:
jobs: jobs:
e2e-test-postgres: e2e-test-postgres:
if: "!contains(github.event.head_commit.message, 'skip e2e ci'))"
strategy: strategy:
matrix: matrix:
node_version: ['18'] node_version: ['18']

View File

@ -29,7 +29,6 @@ on:
jobs: jobs:
frontend-test: frontend-test:
if: "!contains(github.event.head_commit.message, 'skip client ci'))"
strategy: strategy:
matrix: matrix:
node_version: [ '18' ] node_version: [ '18' ]

View File

@ -2,9 +2,9 @@ import { isValid } from '@formily/shared';
import { toFixedByStep } from '@nocobase/utils/client'; import { toFixedByStep } from '@nocobase/utils/client';
import type { InputProps } from 'antd/es/input'; import type { InputProps } from 'antd/es/input';
import type { InputNumberProps } from 'antd/es/input-number'; import type { InputNumberProps } from 'antd/es/input-number';
import { format } from 'd3-format';
import * as math from 'mathjs'; import * as math from 'mathjs';
import React, { useMemo } from 'react'; import React, { useMemo } from 'react';
import { format } from 'd3-format';
function countDecimalPlaces(value) { function countDecimalPlaces(value) {
const number = Number(value); const number = Number(value);
@ -20,7 +20,7 @@ const separators = {
'0.00': { thousands: '', decimal: '.' }, // 没有千位分隔符 '0.00': { thousands: '', decimal: '.' }, // 没有千位分隔符
}; };
//分隔符换算 //分隔符换算
export function formatNumberWithSeparator(number, format = '0,0.00', step = 1) { export function formatNumberWithSeparator(number, format = '0.00', step = 1) {
let formattedNumber = ''; let formattedNumber = '';
if (separators[format]) { if (separators[format]) {
@ -75,20 +75,23 @@ export function scientificNotation(number, decimalPlaces, separator = '.') {
const result = formattedNumber.replace(/e([+-]?\d+)/, (match, exponent) => { const result = formattedNumber.replace(/e([+-]?\d+)/, (match, exponent) => {
if (exponent.startsWith('+')) { if (exponent.startsWith('+')) {
// 正数指数,不显示符号 // 正数指数,不显示符号
return ` × 10<sup>${exponent.slice(1)}</sup>`; return `×10<sup>${exponent.slice(1)}</sup>`;
} else { } else {
// 负数指数,显示 "-" 符号 // 负数指数,显示 "-" 符号
return ` × 10<sup>-${exponent.slice(1)}</sup>`; return `×10<sup>-${exponent.slice(1)}</sup>`;
} }
}); });
return result; return result;
} }
export const ReadPretty: React.FC<InputProps & InputNumberProps> = (props: any) => {
const { step, formatStyle, value, addonBefore, addonAfter, unitConversion, unitConversionType, separator } = props; export function formatNumber(props) {
if (!isValid(props.value)) { const { step, formatStyle, value, unitConversion, unitConversionType, separator = '0.00' } = props;
if (!isValid(value)) {
return null; return null;
} }
//单位换算 //单位换算
const unitData = formatUnitConversion(value, unitConversionType, unitConversion); const unitData = formatUnitConversion(value, unitConversionType, unitConversion);
//精度换算 //精度换算
@ -100,10 +103,20 @@ export const ReadPretty: React.FC<InputProps & InputNumberProps> = (props: any)
//科学计数显示 //科学计数显示
result = scientificNotation(Number(unitData), countDecimalPlaces(step), separators?.[separator]?.['decimal']); result = scientificNotation(Number(unitData), countDecimalPlaces(step), separators?.[separator]?.['decimal']);
} }
return result;
}
if (!result) { export const ReadPretty: React.FC<InputProps & InputNumberProps> = (props: any) => {
const { step, formatStyle, value, addonBefore, addonAfter, unitConversion, unitConversionType, separator } = props;
const result = useMemo(() => {
return formatNumber({ step, formatStyle, value, unitConversion, unitConversionType, separator });
}, [step, formatStyle, value, unitConversion, unitConversionType, separator]);
if (!isValid(result)) {
return null; return null;
} }
return ( return (
<div className={'nb-read-pretty-input-number'}> <div className={'nb-read-pretty-input-number'}>
{addonBefore} {addonBefore}

View File

@ -1,9 +1,9 @@
import { fireEvent, render, screen } from '@nocobase/test/client'; import { fireEvent, render, screen } from '@nocobase/test/client';
import React from 'react'; import React from 'react';
import { formatNumberWithSeparator, formatUnitConversion, scientificNotation } from '../ReadPretty';
import App2 from '../demos/addonBefore&addonAfter'; import App2 from '../demos/addonBefore&addonAfter';
import App3 from '../demos/highPrecisionDecimals'; import App3 from '../demos/highPrecisionDecimals';
import App1 from '../demos/inputNumber'; import App1 from '../demos/inputNumber';
import { formatNumberWithSeparator, formatUnitConversion, scientificNotation } from '../ReadPretty';
describe('InputNumber', () => { describe('InputNumber', () => {
it('should display the title', () => { it('should display the title', () => {
@ -81,13 +81,13 @@ describe('ReadPretty:formatNumberWithSeparator', () => {
// Test case 1: Format a number with default format '0,0.00' // Test case 1: Format a number with default format '0,0.00'
test('Format number with default separator', () => { test('Format number with default separator', () => {
const formatted = formatNumberWithSeparator(1234567.89); const formatted = formatNumberWithSeparator(1234567.89);
expect(formatted).toBe('1,234,567.9'); expect(formatted).toBe('1234567.9');
}); });
// Test case 2: Format a number with custom format '0.00' // Test case 2: Format a number with custom format '0.00'
test('Format number with custom separator', () => { test('Format number with custom separator', () => {
const formatted = formatNumberWithSeparator(1234567.89, '0.00', 1); const formatted = formatNumberWithSeparator(1234567.89, '0,0.00', 1);
expect(formatted).toBe('1234567.9'); expect(formatted).toBe('1,234,567.9');
}); });
}); });
describe('ReadPretty:formatUnitConversion', () => { describe('ReadPretty:formatUnitConversion', () => {
@ -101,18 +101,23 @@ describe('ReadPretty:formatUnitConversion', () => {
const result = formatUnitConversion(10, '/', 0); const result = formatUnitConversion(10, '/', 0);
expect(result).toBe(10); expect(result).toBe(10);
}); });
test('0.1*0.2', () => {
const result = formatUnitConversion(0.1, '*', 0.2);
expect(result).toBe(0.02);
});
}); });
describe('ReadPretty:scientificNotation', () => { describe('ReadPretty:scientificNotation', () => {
// Test case 1: Format a number into scientific notation with 2 decimal places // Test case 1: Format a number into scientific notation with 2 decimal places
test('Format number into scientific notation', () => { test('Format number into scientific notation', () => {
const formatted = scientificNotation(1234567.89, 2); const formatted = scientificNotation(1234567.89, 2);
expect(formatted).toBe('1.23 × 10<sup>6</sup>'); expect(formatted).toBe('1.23×10<sup>6</sup>');
}); });
// Test case 2: Format a number into scientific notation with custom separator '.' // Test case 2: Format a number into scientific notation with custom separator '.'
test('Format number into scientific notation with custom separator', () => { test('Format number into scientific notation with custom separator', () => {
const formatted = scientificNotation(1234567.89, 2, '.'); const formatted = scientificNotation(1234567.89, 2, '.');
expect(formatted).toBe('1.23 × 10<sup>6</sup>'); expect(formatted).toBe('1.23×10<sup>6</sup>');
}); });
}); });