@@ -9,13 +9,18 @@ import {
99 REGISTRY ,
1010 REGISTRY_SCOPE_DELIMITER ,
1111 SOCKET_API_BASE_URL ,
12+ SOCKET_API_TOKENS_URL ,
1213 SOCKET_APP_PREFIX ,
1314 SOCKET_CLI_APP_NAME ,
15+ SOCKET_CONTACT_URL ,
16+ SOCKET_DASHBOARD_URL ,
1417 SOCKET_DLX_APP_NAME ,
18+ SOCKET_DOCS_URL ,
1519 SOCKET_FIREWALL_APP_NAME ,
1620 SOCKET_GITHUB_ORG ,
1721 SOCKET_IPC_HANDSHAKE ,
1822 SOCKET_OVERRIDE_SCOPE ,
23+ SOCKET_PRICING_URL ,
1924 SOCKET_PUBLIC_API_KEY ,
2025 SOCKET_PUBLIC_API_TOKEN ,
2126 SOCKET_REGISTRY_APP_NAME ,
@@ -24,6 +29,8 @@ import {
2429 SOCKET_REGISTRY_REPO_NAME ,
2530 SOCKET_REGISTRY_SCOPE ,
2631 SOCKET_SECURITY_SCOPE ,
32+ SOCKET_STATUS_URL ,
33+ SOCKET_WEBSITE_URL ,
2734} from '@socketsecurity/lib/constants/socket'
2835
2936describe ( 'constants/socket' , ( ) => {
@@ -75,6 +82,94 @@ describe('constants/socket', () => {
7582 } )
7683 } )
7784
85+ describe ( 'Socket.dev URLs' , ( ) => {
86+ it ( 'should export SOCKET_WEBSITE_URL' , ( ) => {
87+ expect ( SOCKET_WEBSITE_URL ) . toBe ( 'https://socket.dev' )
88+ } )
89+
90+ it ( 'should export SOCKET_CONTACT_URL' , ( ) => {
91+ expect ( SOCKET_CONTACT_URL ) . toBe ( 'https://socket.dev/contact' )
92+ } )
93+
94+ it ( 'should export SOCKET_DASHBOARD_URL' , ( ) => {
95+ expect ( SOCKET_DASHBOARD_URL ) . toBe ( 'https://socket.dev/dashboard' )
96+ } )
97+
98+ it ( 'should export SOCKET_API_TOKENS_URL' , ( ) => {
99+ expect ( SOCKET_API_TOKENS_URL ) . toBe (
100+ 'https://socket.dev/dashboard/settings/api-tokens' ,
101+ )
102+ } )
103+
104+ it ( 'should export SOCKET_PRICING_URL' , ( ) => {
105+ expect ( SOCKET_PRICING_URL ) . toBe ( 'https://socket.dev/pricing' )
106+ } )
107+
108+ it ( 'should export SOCKET_STATUS_URL' , ( ) => {
109+ expect ( SOCKET_STATUS_URL ) . toBe ( 'https://status.socket.dev' )
110+ } )
111+
112+ it ( 'should export SOCKET_DOCS_URL' , ( ) => {
113+ expect ( SOCKET_DOCS_URL ) . toBe ( 'https://docs.socket.dev' )
114+ } )
115+
116+ it ( 'should all be valid HTTPS URLs' , ( ) => {
117+ const urls = [
118+ SOCKET_WEBSITE_URL ,
119+ SOCKET_CONTACT_URL ,
120+ SOCKET_DASHBOARD_URL ,
121+ SOCKET_API_TOKENS_URL ,
122+ SOCKET_PRICING_URL ,
123+ SOCKET_STATUS_URL ,
124+ SOCKET_DOCS_URL ,
125+ ]
126+ urls . forEach ( url => {
127+ expect ( url ) . toMatch ( / ^ h t t p s : \/ \/ / )
128+ expect ( ( ) => new URL ( url ) ) . not . toThrow ( )
129+ } )
130+ } )
131+
132+ it ( 'should all contain socket.dev domain' , ( ) => {
133+ const urls = [
134+ SOCKET_WEBSITE_URL ,
135+ SOCKET_CONTACT_URL ,
136+ SOCKET_DASHBOARD_URL ,
137+ SOCKET_API_TOKENS_URL ,
138+ SOCKET_PRICING_URL ,
139+ SOCKET_STATUS_URL ,
140+ SOCKET_DOCS_URL ,
141+ ]
142+ urls . forEach ( url => {
143+ expect ( url ) . toContain ( 'socket.dev' )
144+ } )
145+ } )
146+
147+ it ( 'should not have trailing slashes' , ( ) => {
148+ const urls = [
149+ SOCKET_WEBSITE_URL ,
150+ SOCKET_CONTACT_URL ,
151+ SOCKET_DASHBOARD_URL ,
152+ SOCKET_API_TOKENS_URL ,
153+ SOCKET_PRICING_URL ,
154+ SOCKET_STATUS_URL ,
155+ SOCKET_DOCS_URL ,
156+ ]
157+ urls . forEach ( url => {
158+ expect ( url . endsWith ( '/' ) ) . toBe ( false )
159+ } )
160+ } )
161+
162+ it ( 'should support URL path construction' , ( ) => {
163+ const orgDashboard = `${ SOCKET_DASHBOARD_URL } /org/myorg`
164+ expect ( orgDashboard ) . toBe ( 'https://socket.dev/dashboard/org/myorg' )
165+ } )
166+
167+ it ( 'should support documentation path construction' , ( ) => {
168+ const guidePath = `${ SOCKET_DOCS_URL } /docs/getting-started`
169+ expect ( guidePath ) . toBe ( 'https://docs.socket.dev/docs/getting-started' )
170+ } )
171+ } )
172+
78173 describe ( 'Socket.dev scopes' , ( ) => {
79174 it ( 'should export SOCKET_REGISTRY_SCOPE' , ( ) => {
80175 expect ( SOCKET_REGISTRY_SCOPE ) . toBe ( '@socketregistry' )
0 commit comments