Code AI platform with Code Search & Cody
Go to file
Felix Kling fff87e4a50
sveltekit: Setup unit tests with vitest (#54953)
This PR adds vitest and faker for unit testing, and to use it properly
already I refactored the promise->store helper to be more flexible.

**Unit testing**
vitest works prefectly together with vite (it's from the same
author/community). It will use the same configuration and so there is
very little additional configuration necessary.
I only had to update vite.config.ts to not overwrite `process` (but
according to https://vitejs.dev/config/shared-options.html#define I
might not be doing it right anyway... will look into this another time).

The API is pretty compatible with jest, so there shouldn't be any
surprises.

Tests can be run with `pnpm vitest`.

**Faker**
I stared to use faker on a differnt branch to generate more (and more
realistic) test data for storybook stories and unit test. Eventually I'd
like to use this to generate mock data for any of our GraphQL APIs. One
great feature is the ability to _seed_ the random number generator so
that you can get random but repeatable values in tests.

**Promise<>store utility**
Working with promises in a reactive way can be tricky. There is a risk
of stale data ovewriting current data when an older promise resolves
after a newer one.
Observables can help here but since we are trying to move away from
them, I introduced a simple store to handle promises. I extended it now
to handle more cases, especially being able to access the previous value
while a new promise is loading. The API might seem clunky (and I'd be
happy to improve it eventually), but this way makes it easier to
remember to call `set` whenever the promise changes.



## Test plan

`pnpm vitest`

Run dev server, open pages affected by promise store changes (repo
pages) and verify that they behave as expected.
2023-07-19 16:58:29 +02:00
.aspect Switch to OCI/Wolfi based image (#52693) 2023-06-02 12:12:52 +02:00
.buildkite ci: surpress pre-exit hook warnings (#54769) 2023-07-11 18:08:56 +00:00
.github pr-auditor: use pr-auditor from new repo (#55055) 2023-07-18 14:07:00 +02:00
.vscode remove cody code that was moved to separate cody repo (#54729) 2023-07-10 00:31:47 -10:00
client sveltekit: Setup unit tests with vitest (#54953) 2023-07-19 16:58:29 +02:00
cmd gitserver: make list of ignored git commands for recording configurable (#55100) 2023-07-19 15:16:21 +01:00
dev bazel: monitoring docs gen (#54965) 2023-07-19 12:20:24 +00:00
doc bazel: monitoring docs gen (#54965) 2023-07-19 12:20:24 +00:00
docker-images gomod: update zoekt to include ngram sort optimization (#54999) 2023-07-17 15:34:20 +02:00
enterprise permissions-center: add tests for permissionsInfoResolver and permissionsInfoUserResolver. (#55073) 2023-07-18 20:15:45 +04:00
internal fix bug for gerrit repos that have a/ at the start of their name (#54973) 2023-07-19 14:29:50 +00:00
lib executors: Provide more context when the semantic version is invalid (#55024) 2023-07-17 13:59:46 -06:00
migrations Backend: remove enterprise/internal (#54872) 2023-07-12 22:51:02 +02:00
monitoring bazel: monitoring docs gen (#54965) 2023-07-19 12:20:24 +00:00
schema gitserver: make list of ignored git commands for recording configurable (#55100) 2023-07-19 15:16:21 +01:00
src-tauri App - Update Tauri dependencies to 1.4.1 (#54856) 2023-07-12 20:04:18 +00:00
testing bzl: re-enable code-intel-qa (only on main) (#54587) 2023-07-04 14:02:34 +00:00
third_party gomod: update zoekt to include ngram sort optimization (#54999) 2023-07-17 15:34:20 +02:00
third-party-licenses chore: update third-party licenses (#55028) 2023-07-17 17:53:19 +00:00
ui/assets Cody App about page (#54698) 2023-07-12 05:08:59 +00:00
windows/installer/cody Disable services that are causing issues on Windows. (#54263) 2023-06-27 19:08:53 +00:00
wolfi-images wolfi: cadvisor entrypoint (#54809) 2023-07-12 15:16:31 +00:00
wolfi-packages opentelemetry: upgrade all packages to v1.16/v0.81 (#54969) 2023-07-17 10:48:19 -07:00
.bazel_fix_commands.json bazel: add command sets that uses bazel under the hood (#48460) 2023-03-02 11:31:51 +01:00
.bazelignore remove cody code that was moved to separate cody repo (#54729) 2023-07-10 00:31:47 -10:00
.bazeliskrc build: update to Aspect CLI 5.5.4 (#54468) 2023-06-29 22:44:05 -07:00
.bazelrc bzl+doc: add convenient way of running all short go tests locally w/ Bazel (#53330) 2023-06-14 21:00:13 +02:00
.bazelversion Update bazel to 6.1.1 (#50472) 2023-04-11 10:51:21 +02:00
.browserslistrc web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
.dockerignore web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
.editorconfig chore: Add .lua to editorconfig. (#44267) 2022-11-11 15:25:32 +08:00
.eslintignore bazel: implement custom ESLint Bazel rule (#52062) 2023-05-22 04:05:45 -07:00
.eslintrc.js bazel: implement custom ESLint Bazel rule (#52062) 2023-05-22 04:05:45 -07:00
.gitattributes github: show bazel diff again (#54719) 2023-07-07 16:43:45 +00:00
.gitignore bzl: avoid ui/assets/* dep on CHANGELOG.md (#54486) 2023-06-30 09:11:27 -05:00
.graphqlrc.yml
.hadolint.yaml bump comby version to 1.7.1 (#35830) 2022-05-20 20:12:01 -07:00
.mailmap mailmap: add entries for Eric and Renovate (#50966) 2023-04-25 09:42:22 +02:00
.mocharc.js build: still need BAZEL_BINDIR for webpack_bundle custom rule (#48796) 2023-03-07 20:02:11 -08:00
.npmrc pnpm: remove update notifier message (#51630) 2023-05-10 08:53:39 +02:00
.percy.yml ci: percy defer snapshots upload (#54116) 2023-06-25 18:57:49 -07:00
.prettierignore cody: add the client side app to review CLI generated code completions (#53140) 2023-06-16 00:19:32 -07:00
.stylelintignore rework plugin structure and implement frontside blogpost (#46883) 2023-02-15 11:49:51 +02:00
.stylelintrc.json web: drop bootstrap depenedency (#41401) 2022-09-07 03:11:26 -07:00
.tool-versions bzl: update to Go 1.20.5 (#54962) 2023-07-14 17:27:46 +02:00
.trivyignore ci: ignore benign CVE-2021-43816 in prometheus (#31069) 2022-02-11 16:49:10 +00:00
babel.config.jest.js bazel: fix the web application bundle in Bazel (#50383) 2023-04-10 21:16:12 -07:00
babel.config.js bazel: fix the web application bundle in Bazel (#50383) 2023-04-10 21:16:12 -07:00
BUILD.bazel bazel: monitoring docs gen (#54965) 2023-07-19 12:20:24 +00:00
CHANGELOG.app.md App - update changelog for release (#54789) 2023-07-11 15:49:57 +00:00
CHANGELOG.md [bitbucket cloud] Code host connection updates (#55095) 2023-07-19 11:16:59 +00:00
CODENOTIFY nix: update pnpm hash (#51512) 2023-05-05 12:51:59 +00:00
CONTRIBUTING.md Docs: Fix docs page link in main CONTRIBUTING.md (#45160) 2022-12-05 14:57:45 +01:00
deps.bzl opentelemetry: upgrade all packages to v1.16/v0.81 (#54969) 2023-07-17 10:48:19 -07:00
doc.go
eslint-relative-formatter.js bazel: implement custom ESLint Bazel rule (#52062) 2023-05-22 04:05:45 -07:00
flake.lock nix: reorganizing (#52273) 2023-05-31 16:20:32 +01:00
flake.nix nix: develop uses non static binaries (#52927) 2023-06-07 08:36:09 +02:00
gen.go chore: Update go-mockgen (#44305) 2022-11-11 19:24:00 +00:00
go.mod opentelemetry: upgrade all packages to v1.16/v0.81 (#54969) 2023-07-17 10:48:19 -07:00
go.sum opentelemetry: upgrade all packages to v1.16/v0.81 (#54969) 2023-07-17 10:48:19 -07:00
graphql-schema-linter.config.js
gulpfile.js web: drop legacy GraphQL schema generator (#45945) 2022-12-25 18:10:20 -08:00
jest.config.base.js bazel: wildcard jest tests (#49282) 2023-03-17 03:38:49 -07:00
jest.config.js tests: use glob for jest projects field (#29681) 2022-01-13 01:11:52 -08:00
jest.snapshot-resolver.js bazel: wildcard jest tests (#49282) 2023-03-17 03:38:49 -07:00
LICENSE relicense all paths other than MIT licensed code, client/cody*, jetbrains, VS code, and browser extension to enterprise (#53345) (#53345) 2023-06-13 10:28:11 -07:00
LICENSE.enterprise
lighthouserc.js web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
linter_deps.bzl bzl: port go compiler directives linter from sg lint to nogo (#54485) 2023-06-30 14:31:15 +02:00
mockgen.temp.yaml gomod: update zoekt to include ngram sort optimization (#54999) 2023-07-17 15:34:20 +02:00
mockgen.test.yaml Backend: remove enterprise/internal (#54872) 2023-07-12 22:51:02 +02:00
mockgen.yaml mocks: Reorganize mock definitions into multiple files (#36967) 2022-06-27 20:59:16 +00:00
nogo_config.json Move enterprise/internal/batches package to internal/batches (#54855) 2023-07-12 08:42:35 -06:00
package.json remove cody code that was moved to separate cody repo (#54729) 2023-07-10 00:31:47 -10:00
pnpm-lock.yaml sveltekit: Setup unit tests with vitest (#54953) 2023-07-19 16:58:29 +02:00
pnpm-workspace.yaml cody: development branch (#49761) 2023-03-23 20:41:11 +01:00
postcss.config.js extensibility: add featured extensions to registry (#21665) 2021-06-10 13:55:20 -04:00
prettier.config.js clean up Cody CSS to increase shareability and improve display in web app (#50279) 2023-04-03 12:29:05 -07:00
README.md relicense all paths other than MIT licensed code, client/cody*, jetbrains, VS code, and browser extension to enterprise (#53345) (#53345) 2023-06-13 10:28:11 -07:00
renovate.json chore: add test plans to bot and release tool PRs (#31351) 2022-02-22 07:53:25 -08:00
SECURITY.md
service-catalog.yaml lib/servicecatalog: init to distribute catalog (#46999) 2023-01-26 17:22:27 -08:00
sg.config.yaml Merge enterprise and oss repo-updater (#54939) 2023-07-14 15:05:13 +02:00
shell.nix nix: more bazel paths (#53941) 2023-06-22 12:39:38 +00:00
stamp_tags.bzl Switch to OCI/Wolfi based image (#52693) 2023-06-02 12:12:52 +02:00
svgo.config.js Performance: Optimize static SVG assets with SVGO (#26285) 2021-10-27 15:27:36 +01:00
tsconfig.all.json remove cody code that was moved to separate cody repo (#54729) 2023-07-10 00:31:47 -10:00
tsconfig.base.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
tsconfig.eslint.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
WORKSPACE bzl: update to Go 1.20.5 (#54962) 2023-07-14 17:27:46 +02:00

DocsContributingTwitterDiscord

Build status Scorecard Latest release Discord Contributors


Sourcegraph makes it easy to read, write, and fix code—even in big, complex codebases.

  • Code search: Search all of your repositories across all branches and all code hosts.
  • Code intelligence: Navigate code, find references, see code owners, trace history, and more.
  • Fix and refactor: Roll out large-scale changes to many repositories at once and track big migrations.

Getting started



Development

Refer to the Developing Sourcegraph guide to get started.

Documentation

The doc directory has additional documentation for developing and understanding Sourcegraph:

License

This repository contains primarily non-OSS-licensed files, and some OSS licensed files (for example, IDE extensions). We maintain one repository rather than two separate repositories mainly for development convenience.

See the LICENSE for an explanation of how files are licensed.