|
@@ -1,6 +1,8 @@
|
|
|
import { describe, it, expect } from 'vitest';
|
|
import { describe, it, expect } from 'vitest';
|
|
|
|
|
+import { screen } from '@testing-library/react';
|
|
|
|
|
|
|
|
import InboundFormModal from '@/pages/inbounds/form/InboundFormModal';
|
|
import InboundFormModal from '@/pages/inbounds/form/InboundFormModal';
|
|
|
|
|
+import { DBInbound } from '@/models/dbinbound';
|
|
|
import {
|
|
import {
|
|
|
renderWithProviders,
|
|
renderWithProviders,
|
|
|
fieldLabels,
|
|
fieldLabels,
|
|
@@ -38,4 +40,39 @@ describe('InboundFormModal', () => {
|
|
|
expect(fieldLabels()).toMatchSnapshot(proto);
|
|
expect(fieldLabels()).toMatchSnapshot(proto);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ it('preserves custom share address strategy when editing a local inbound', async () => {
|
|
|
|
|
+ renderWithProviders(
|
|
|
|
|
+ <InboundFormModal
|
|
|
|
|
+ open
|
|
|
|
|
+ mode="edit"
|
|
|
|
|
+ dbInbound={new DBInbound({
|
|
|
|
|
+ id: 1,
|
|
|
|
|
+ port: 12345,
|
|
|
|
|
+ listen: '',
|
|
|
|
|
+ protocol: 'shadowsocks',
|
|
|
|
|
+ remark: 'edge',
|
|
|
|
|
+ enable: true,
|
|
|
|
|
+ settings: {
|
|
|
|
|
+ method: '2022-blake3-aes-128-gcm',
|
|
|
|
|
+ password: 'server-password',
|
|
|
|
|
+ network: 'tcp,udp',
|
|
|
|
|
+ clients: [],
|
|
|
|
|
+ },
|
|
|
|
|
+ streamSettings: { network: 'tcp', security: 'none', tcpSettings: {} },
|
|
|
|
|
+ sniffing: { enabled: false },
|
|
|
|
|
+ nodeId: null,
|
|
|
|
|
+ shareAddrStrategy: 'custom',
|
|
|
|
|
+ shareAddr: 'edge.example.test',
|
|
|
|
|
+ })}
|
|
|
|
|
+ dbInbounds={[]}
|
|
|
|
|
+ availableNodes={[]}
|
|
|
|
|
+ onClose={() => {}}
|
|
|
|
|
+ onSaved={() => {}}
|
|
|
|
|
+ />,
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ const shareAddrInput = await screen.findByDisplayValue('edge.example.test');
|
|
|
|
|
+ expect((shareAddrInput as HTMLInputElement).value).toBe('edge.example.test');
|
|
|
|
|
+ });
|
|
|
});
|
|
});
|