Compare commits

..

67 Commits

Author SHA1 Message Date
Rajan Agaskar 273f429754 Bump version to 0.4.5 2010-02-24 20:02:58 -08:00
Rajan Agaskar 90e0dbcad1 Bump jasmine version to 0.10.1 2010-02-24 20:01:15 -08:00
ragaskar bfec8763d7 Add coverage for request handling 2010-02-17 07:32:54 -08:00
ragaskar 7375b5279d Fix for 'jasmine:ci' task failure with large numbers of src files 2010-02-16 23:54:26 -08:00
pivotal 909d5e9a88 Bump version to 0.4.3 2010-01-28 14:04:16 -08:00
pivotal 40569149f8 Bad filepath in simple_config_file caused breakage. Sorry 2010-01-28 14:03:30 -08:00
ragaskar 07b60547b6 Bump to version 0.4.2 2010-01-27 19:58:54 -08:00
ragaskar 8ec5b9761c Rename jasmine_spec.rb to jasmine_runner.rb to prevent unintended running 2010-01-27 19:57:51 -08:00
ragaskar 1b8a4804b7 Rename jasmine.yaml to jasmine.yml. 2010-01-27 19:50:39 -08:00
ragaskar 65622305ae Bump jasmine version to latest 2010-01-27 19:20:36 -08:00
ragaskar c2341034d4 fix markdown 2010-01-26 21:54:51 -08:00
ragaskar e5503c98d8 Minor doc update 2010-01-26 21:53:34 -08:00
ragaskar e0a90dd473 Version bump to 0.4.1 2010-01-26 21:34:30 -08:00
ragaskar 95a6085a01 Rename sources.yaml to jasmine.yaml. Add stylesheets support to jasmine yaml. Allow dir glob strings in jasmine.yaml file enumerations 2010-01-26 21:34:03 -08:00
ragaskar 0b02e82229 Fix bad write mode on Rakefile during install 2010-01-26 20:20:49 -08:00
ragaskar 53305edc68 Add rails generators. Add sources.yaml support. Fix Prototype.js collision on jasmine:ci. Version bump to 0.4.0. 2010-01-26 07:58:30 -08:00
Rajan Agaskar d2fe23b52b Only include jasmine from bin 2009-12-31 16:39:51 -08:00
Rajan Agaskar e26c3754b0 Pull old jasmine-ruby.gemspec, add jasmine.gemspec 2009-12-31 11:40:59 -08:00
Rajan Agaskar 9b42df2cbf Ignore bundled gems 2009-12-31 11:31:58 -08:00
Rajan Agaskar a1ea56c1ac Case-sensitive rename to fix spec fail 2009-12-31 11:29:59 -08:00
Rajan Agaskar 8dc4d979ff Ffwd jasmine 2009-12-31 09:50:33 -08:00
Rajan Agaskar 92e671692f Resolve merge conflicts 2009-12-31 09:47:52 -08:00
Christian Williams c8b38ea47a Fix js paths when served from somewhere other than /. 2009-12-29 17:09:07 -06:00
Christian Williams 5821de0801 Version bump to 0.1.3 2009-12-28 16:47:48 -06:00
Christian Williams d4683ca485 Refactor. 2009-12-28 16:46:50 -06:00
Christian Williams 81aeeeedee Refactor config file/path handling. 2009-12-28 16:27:02 -06:00
Christian Williams 2045226ba7 More specs. 2009-12-28 15:24:49 -06:00
Christian Williams 00c7d3ca29 Runs server correctly for self-test. 2009-12-28 15:16:13 -06:00
Christian Williams 73c8fef43e More changes, specs. 2009-12-28 15:10:27 -06:00
Christian Williams 59c85355fc More changes, specs. 2009-12-28 14:26:30 -06:00
Christian Williams e4a5d567e0 Rearrange, start adding specs. 2009-12-28 14:00:02 -06:00
Christian Williams 0c8258996e Rearrange, refactor, ruin and raze. 2009-12-28 12:08:23 -06:00
Christian Williams 945b167131 Version bump to 0.1.2 2009-12-27 14:49:06 -06:00
Christian Williams ffb69b4bde Version bump to 0.1.1 2009-12-27 14:41:33 -06:00
Christian Williams 81748d166d Version bump to 0.1.0 2009-12-27 14:41:29 -06:00
Christian Williams dd0e3e5cf1 Version bump to 0.0.0 2009-12-27 14:41:20 -06:00
Christian Williams 1f50e2b2fb Version bump to 0.2.0 2009-12-27 14:39:37 -06:00
Christian Williams 24a8bb7825 Switch to jasmine remove-contrib branch. 2009-12-27 11:54:54 -06:00
ragaskar 8fbec47739 Version bump to 0.2.0 2009-12-05 13:44:09 -08:00
ragaskar b38f2aa5be Add reqs for thin 1.2.4, pivotal-selenium-rc, selenium-client 2009-12-05 13:06:34 -08:00
ragaskar 73597fc8a5 Resolve merge 2009-11-28 12:09:19 -08:00
ragaskar a476f5b91c FFwd jasmine, fix gemspec 2009-11-28 12:04:17 -08:00
Christian Williams 494d80fc66 Add geminstaller.yml to require jeweler.
Add rspec, rack, and thin requirements for gem.
2009-11-26 12:11:25 -05:00
ragaskar 4b3db52915 Theoretical rails vendor support 2009-11-25 20:00:18 -08:00
ragaskar 772d9ed697 Kill tasks 2009-11-25 19:55:50 -08:00
ragaskar 7b1de037f8 Rudimentary rails support 2009-11-25 19:47:05 -08:00
ragaskar 3891b8afe4 Load JasmineHelper overrides in jasmine_meta_spec 2009-11-25 18:47:22 -08:00
ragaskar 692ae5980a Simplify mapping 2009-11-25 18:43:51 -08:00
ragaskar 2b9667c82e Move ruby logic out of jasmine contrib (for now) 2009-11-25 18:01:34 -08:00
ragaskar e3585b79f0 Load spec_hhelpers before spec definitions 2009-11-25 08:01:09 -08:00
ragaskar 1c2780d0c1 Updated readme 2009-11-24 22:47:29 -08:00
ragaskar bece09bba8 remove jasmine server; use jasmine init to copy (or append) a Rakefile with common jasmine tasks 2009-11-24 22:42:30 -08:00
ragaskar 7c043eb5d0 Automatically roll up any js files in spec/helpers and add them as spec_helpers 2009-10-31 22:35:35 -07:00
ragaskar fcc1872d48 Added jasmine init 2009-10-30 23:56:05 -07:00
ragaskar 391c42533f added init task 2009-10-30 23:06:00 -07:00
ragaskar 546604fdc8 Ffwd jasmine 2009-10-30 20:57:21 -07:00
ragaskar 766eacc88b Remove .idea files from gemspec 2009-10-15 01:45:40 -07:00
ragaskar c61c69d256 Jasmine submodule 2009-10-15 01:40:58 -07:00
ragaskar eae0dbdc57 Remove frozen jasmine 2009-10-15 01:37:53 -07:00
ragaskar abe34315a0 README updates, pulled ci for now 2009-10-15 00:44:37 -07:00
ragaskar 98dd13c9b2 Ignore pkg 2009-10-15 00:36:31 -07:00
ragaskar 2c60b0a546 Ignore .idea 2009-10-15 00:30:37 -07:00
ragaskar 27f165e241 Oops, .idea 2009-10-15 00:29:40 -07:00
ragaskar 75bb56f294 Loads an optional second command line var to monkey patch jasminehelper 2009-10-15 00:27:46 -07:00
ragaskar add3e1ee7a Regenerated gemspec for version 0.1.0 2009-10-10 17:54:15 -07:00
ragaskar baf1bf10f6 Ignore .idea 2009-10-10 17:53:53 -07:00
ragaskar 504ba8c54d First crack at jasmine-ruby 2009-10-10 17:44:59 -07:00
3449 changed files with 1291 additions and 1252602 deletions
-156
View File
@@ -1,156 +0,0 @@
# Run tests against supported Node versions, and (except for pull requests)
# against supported browsers that are available on Saucelabs.
version: 2.1
orbs:
win: circleci/windows@5.0.0
executors:
node24:
docker:
- image: cimg/node:24.0.0
working_directory: ~/workspace
node22:
docker:
- image: cimg/node:22.0.0
working_directory: ~/workspace
node20:
docker:
- image: cimg/node:20.0.0
working_directory: ~/workspace
jobs:
build:
parameters:
executor:
type: executor
executor: << parameters.executor >>
steps:
- checkout
- run:
name: Report Node and NPM versions
command: echo "Using Node $(node --version) and NPM $(npm --version)"
- run:
name: Install dependencies
command: npm install
- run:
name: Build
command: npm run build
- persist_to_workspace:
root: .
paths:
- .
test_node: &test_node
parameters:
executor:
type: executor
executor: << parameters.executor >>
steps:
- attach_workspace:
at: .
- run:
name: Report Node and NPM versions
command: echo "Using Node $(node --version) and NPM $(npm --version)"
- run:
name: Run tests
command: npm test
test_win:
executor:
name: win/default
shell: bash.exe
steps:
- checkout
- run:
name: Install Node.js
command: nvm install 20.0.0 && nvm use 20.0.0
- run:
name: Report Node and NPM versions
command: echo "Using Node $(node --version) and NPM $(npm --version)"
- run:
name: Install dependencies
command: npm install
- run:
name: Build
command: npm run build
- run:
name: Run tests
command: npm test
test_parallel: &test_parallel
parameters:
executor:
type: executor
executor: << parameters.executor >>
steps:
- attach_workspace:
at: .
- run:
name: Report Node and NPM versions
command: echo "Using Node $(node --version) and NPM $(npm --version)"
- run:
name: Run tests in parallel
command: npm run test:parallel
test_browsers: &test_browsers
executor: node20
steps:
- attach_workspace:
at: .
- run:
name: Install Sauce Connect
command: |
tmpdir=$(mktemp -d)
cd "$tmpdir"
curl https://saucelabs.com/downloads/sauce-connect/5.2.2/sauce-connect-5.2.2_linux.x86_64.tar.gz | tar zxf -
chmod +x sc
mkdir ~/workspace/bin
cp sc ~/workspace/bin
echo "Sauce Connect version info:"
~/workspace/bin/sc version
- run:
name: Run tests
command: |
# Do everything in one step because Sauce Connect won't exit
# cleanly if we kill it from a different step than it started in.
export PATH=$PATH:$HOME/workspace/bin
export SAUCE_TUNNEL_NAME=$CIRCLE_WORKFLOW_JOB_ID
scripts/start-sauce-connect
set +o errexit
scripts/run-sauce-browsers
exitcode=$?
set -o errexit
scripts/stop-sauce-connect
exit $exitcode
workflows:
version: 2
push:
jobs:
- build:
matrix:
parameters:
executor: [node20, node22, node24]
- test_node:
matrix:
parameters:
executor: [node20, node22, node24]
requires:
- build-<< matrix.executor >>
- test_parallel:
matrix:
parameters:
executor: [node20, node22, node24]
requires:
- build-<< matrix.executor >>
- test_browsers:
requires:
- build-node20
filters:
branches:
ignore: /pull\/.*/ # Don't run on pull requests.
- test_win
-8
View File
@@ -1,8 +0,0 @@
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
[*.{js,mjs,json,sh,yml}]
indent_style = space
indent_size = 2
-7
View File
@@ -1,7 +0,0 @@
* text=auto eol=lf
*.png filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.mov filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.docx filter=lfs diff=lfs merge=lfs -text
-112
View File
@@ -1,112 +0,0 @@
# Contributing to Jasmine
We welcome your contributions! Thanks for helping make Jasmine a better project
for everyone. If you want to contribute but don't know what to work on,
[issues tagged help needed](https://github.com/issues?q=is%3Aopen+is%3Aissue+org%3Ajasmine+label%3A%22help+needed%22+)
should have enough detail to get started.
## Before Submitting a Pull Request
1. Ensure all specs are green in browsers *and* node.
* Use `npm test` to test in Node.
* Use `npm run serve` to test in browsers.
2. Fix any eslint or prettier errors reported at the end of `npm test`. Prettier
errors can be automatically fixed by running `npm run cleanup`.
3. Build `jasmine.js` with `npm run build` and run all specs again. This
ensures that your changes self-test well.
5. Revert your changes to `jasmine.js` and `jasmine-html.js`. When we accept
your pull request, we will generate these files as a separate commit and
merge the entire branch into master.
We only accept green pull requests. If you see that the CI build failed, please
fix it. Feel free to ask for help if you're stuck.
## Background
### Directory Structure
* `/src` contains all of the source files
* `/src/core` - generic source files
* `/src/html` - browser-specific files
* `/src/boot` - sources for boot files (see below)
* `/spec` contains all of the tests
* mirrors the source directory
* there are some additional files
* `/lib` contains the compiled copy of Jasmine. This is used to self-test and
distributed as the `jasmine-core` Node, and Ruby packages.
### Self-testing
Jasmine tests itself. The files in `lib` are loaded first, defining the reference `jasmine`. Then the files in `src` are loaded, defining the reference `jasmineUnderTest`. So there are two copies of the code loaded under test.
The tests should always use `jasmineUnderTest` to refer to the objects and functions that are being tested. But the tests can use functions on `jasmine` as needed. _Be careful how you structure any new test code_. Copy the patterns you see in the existing code - this ensures that the code you're testing is not leaking into the `jasmine` reference and vice-versa.
### `boot0.js` and `boot1.js`
These files file does all of the setup necessary for Jasmine to work in a
browser. They load all of the code, create an `Env`, attach the global
functions, and build the reporter. It also sets up the execution of the
`Env` - for browsers this is in `window.onload`. While the default in `lib`
is appropriate for browsers, projects may wish to customize this file.
### Compatibility
Jasmine runs in both Node and a variety of browsers. See the README for the
list of currently supported environments.
## Development
All source code belongs in `src/`. The `core/` directory contains the bulk of Jasmine's functionality. This code should remain browser- and environment-agnostic. If your feature or fix cannot be, as mentioned above, please degrade gracefully. Any code that depends on a browser (specifically, it expects `window` to be the global or `document` is present) should live in `src/html/`.
### Install Dev Dependencies
Jasmine Core relies on Node.js.
To install the Node dependencies, you will need Node.js and npm.
$ npm install
...will install all of the node modules locally. Now run
$ npm test
...you should see tests run and eslint checking formatting.
### How to write new Jasmine code
Or, How to make a successful pull request
* _Do not change the public interface_. Lots of projects depend on Jasmine and
if you aren't careful you'll break them.
* _Be environment agnostic_. Some people run their specs in browsers, others in
Node. Jasmine should support them all as much as possible.
* _Be browser agnostic_ - if you must rely on browser-specific functionality,
please write it in a way that degrades gracefully.
* _Write specs_ - Jasmine's a testing framework. Don't add functionality
without test-driving it.
* _Write code in the style of the rest of the repo_ - Jasmine should look like
a cohesive whole.
* _Ensure the *entire* test suite is green_ in all the big browsers, Node, and
ESLint/Prettier. Your contribution shouldn't break Jasmine for other users.
Follow these tips and your pull request, patch, or suggestion is much more likely to be integrated.
### Running Specs
Be sure to run the tests in at least one supported Node version and at least a
couple of supported browsers. To run the tests in Node, simply use `npm test`
as described above. To run the tests in a browser, run `npm run serve` and then
visit `http://localhost:8888`.
If you have the necessary Selenium drivers installed (e.g. geckodriver or
chromedriver), you can also use Jasmine's CI tooling:
$ JASMINE_BROWSER=<name of browser> npm run ci
### Submitting a Pull Requeset
Once you've done the steps listed under "Before Submitting a Pull Request"
above, you can submit a pull request via the
[standard GitHub process](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request).
TL;DR: Fork the repository, push your work up to your fork, and create a PR from
there.
-95
View File
@@ -1,95 +0,0 @@
name: Bug Report
description: I think I've found a bug in Jasmine
labels: ["bug report"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report a bug. Please follow these steps first.
## Troubleshooting
Please take the time to rule out issues with your code or third party libraries before filing a bug report. If you are reporting an error, try to determine whether the error is coming from Jasmine, another library, or your own code.
Check the [FAQ](https://jasmine.github.io/pages/faq.html) and any other relevant [documentation](https://jasmine.github.io/pages/docs_home.html) to see if your issue has already been addressed.
## Special troubleshooting steps for asynchronous scenarios
If the issue has to do with testing asynchronous code, please read the [async tutorial](https://jasmine.github.io/tutorials/async) and the [async section of the FAQ](https://jasmine.github.io/pages/faq.html#async). In particular, check for the following common errors:
* Are you trying to write a synchronous test for asynchronous code?
* Does the test signal completion before the code under test finishes?
* Do expectations run before the code that they're trying to verify?
## Try the latest version of Jasmine
If at all possible, upgrade to the latest versions of `jasmine-core` and any other relevant packages (e.g. `jasmine`, `jasmine-browser-runner`). If you can't do that, please check the [release notes](https://github.com/jasmine/jasmine/tree/main/release_notes) for all newer versions to make sure that the bug hasn't already been fixed.
## Explain how to reproduce the bug
**Working steps to reproduce are required for all bug reports.** Please help us help you by creating complete but minimal instructions for reproducing the bug.
The steps to reproduce could be:
* A code snippet that reproduces the problem when run by itself in a newly generated empty `jasmine` or `jasmine-browser-runner` project, or in the standalone distribution.
* A set of steps that reproduce the problem when followed exactly as they're written in an empty directory.
* A link to a Git repository or zip/tar file containing a [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example). This option is required for all bugs that can only be reproduced with third-party libraries, including Angular and Karma.
Please **test your steps** by starting with an empty directory and following them exactly as they're written. Bug reports with steps to reproduce that are unclear, don't work, or include an unreasonable amount of extraneous code will likely be closed.
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior
description: What do you think should have happened?
validations:
required: true
- type: textarea
id: actual-behavior
attributes:
label: Actual Behavior
description: What happened instead?
validations:
required: true
- type: textarea
id: possible-solution
attributes:
label: Possible Solution
description: This is optional, but if you have an idea for how to fix the bug we'd like to hear it.
- type: textarea
id: context
attributes:
label: Context
description: How has this issue affected you? What are you trying to accomplish? By providing context, you can help us come up with a solution that is most useful in the real world.
- type: input
id: jasmine-core-version
attributes:
label: jasmine-core version
validations:
required: true
- type: textarea
id: other-versions
attributes:
label: Versions of other relevant packages
placeholder: |
jasmine-browser-runner 1.2.0
fancy-reporter 132.4.8
- type: input
id: browser-or-node-version
attributes:
label: Node.js and/or browser version
placeholder: E.g. "node 16.2.0" or "Safari 15"
validations:
required: true
- type: input
id: os
attributes:
label: Operating System
placeholder: E.g. "Windows 10", "MacOS 12.5", "MCC Interim Linux 0.99.p8"
validations:
required: true
-17
View File
@@ -1,17 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Questions, requests for help, etc
url: https://github.com/jasmine/jasmine/discussions/new/choose
about: Please start a discussion.
- name: Issues with the `jasmine` CLI
url: https://github.com/jasmine/jasmine-npm/issues
about: Please create issues related to the `jasmine` package in its repository.
- name: Issues with jasmine-browser-runner
url: https://github.com/jasmine/jasmine-browser-runner/issues
about: Please create issues related to the `jasmine-browser-runner` package in its repository.
- name: Documentation issues
url: https://github.com/jasmine/jasmine.github.io/issues
about: Please create documentation issues in the docs repository.
- name: TypeScript issues
url: https://github.com/DefinitelyTyped/DefinitelyTyped/discussions
about: Please create issues related to TypeScript compilation errors or other problems with type definitions at DefinitelyTyped.
@@ -1,31 +0,0 @@
name: Feature Proposal
description: I'd like to propose a new feature
labels: ["feature request"]
body:
- type: markdown
attributes:
value: Thanks for taking the time to propose a new feature. Although Jasmine is mostly feature complete, we're always open to hearing new ideas.
- type: textarea
id: description
attributes:
label: Feature Proposal
validations:
required: true
- type: textarea
id: context
attributes:
label: Context
description: How would this feature be useful to you? What are you trying to accomplish? By providing context, you can help us come up with a solution that is most useful in the real world.
validations:
required: true
- type: textarea
id: example
attributes:
label: Example
description: If you're proposing a new API or something similar, please show an example of how it would be used.
render: JavaScript
- type: textarea
id: other-info
attributes:
label: Other Information
description: Anything else that you think would be helpful.
-30
View File
@@ -1,30 +0,0 @@
<!--- Provide a general summary of your changes in the Title above -->
## Description
<!--- Describe your changes in detail -->
## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->
## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->
## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Checklist:
<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] My code follows the code style of this project.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have read the [**CONTRIBUTING**](https://github.com/jasmine/jasmine/blob/main/.github/CONTRIBUTING.md) guide.
- [ ] I have added tests to cover my changes.
- [ ] All new and existing tests passed.
-23
View File
@@ -1,23 +0,0 @@
name: Test in latest available Safari
on:
push:
pull_request:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
build:
runs-on: macos-latest
steps:
- name: Report Safari version
run: osascript -e 'get version of application "Safari"'
- uses: actions/checkout@v4
- name: Use Node.js 22.x
uses: actions/setup-node@v4
with:
node-version: 22.x
- run: npm install
- run: npm run build
- run: JASMINE_BROWSER=safari npm run ci
+5 -26
View File
@@ -1,26 +1,5 @@
.idea/ .idea
.svn/ pkg
.DS_Store vendor
site/ bin
.bundle/ !bin/jasmine
.pairs
.rvmrc
.ruby-gemset
.ruby-version
*.gem
.bundle
tags
Gemfile.lock
package-lock.json
yarn.lock
pkg/*
.sass-cache/*
src/html/.sass-cache/*
node_modules/
sauce_connect.log
*.swp
build/
dist
nbproject/
*.iml
.envrc
+3
View File
@@ -0,0 +1,3 @@
[submodule "jasmine"]
path = jasmine
url = git://github.com/pivotal/jasmine.git
-3
View File
@@ -1,3 +0,0 @@
{
"singleQuote": true
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
-48
View File
@@ -1,48 +0,0 @@
# Jasmine Core Development Notes
## Architecture
- This is the main jasmine-core repository, a JavaScript BDD testing framework
- **Directory structure**:
- `src/` - source code
- `src/core/` - environment-agnostic core functionality
- `src/html/` - browser-specific code
- `src/boot/` - boot files for browser setup
- `spec/` - tests, mirrors the src directory structure
- `lib/` - compiled distribution files (built, not checked in modified)
## Key Development Commands
- `npm install` - install dependencies
- `npm test` - run all tests in Node.js + lint + prettier check
- `npm run test:parallel` - run tests in parallel
- `npm run build` - build distribution to `/lib`
- `npm run cleanup` - auto-fix prettier errors
- `npm run serve` - serve tests for browser testing at http://localhost:8888
- `JASMINE_BROWSER=<name> npm run ci` - run browser tests via Selenium
## Before submitting PR
1. Run tests in Node.js AND browsers: `npm test` and `npm run serve`
2. Fix any eslint/prettier errors: `npm run cleanup`
3. Build `lib/` with `npm run build` and re-test
4. Revert changes to built files in `lib/` - maintainers will rebuild when merging
## Testing Conventions
- Jasmine self-tests: `lib/jasmine-core.js` provides `jasmine` (runner), `src/` provides `jasmineUnderTest` (code under test)
- Always use `jasmineUnderTest` for objects/functions being tested
## Coding Conventions
- Single quotes, semicolons required
- Curly braces required for all control statements
- ECMA 2022 syntax, commonjs modules
- Core code must stay environment-agnostic:
- Keep browser-specific code in `src/html/`
- Degrade gracefully when environment-specific features aren't available
## Supported Environments
- Node: 20, 22, 24
- Browsers: Safari 26+, Chrome/Firefox/Edge (evergreen)
-46
View File
@@ -1,46 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at jasmine-maintainers@googlegroups.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
+12
View File
@@ -0,0 +1,12 @@
#jasmine-ruby is currently designed for use with bundler 0.8.0
gem "rake", "0.8.7"
gem "jeweler", "1.4.0"
gem "gemcutter", "0.2.1"
gem "rspec", ">= 1.1.5", :only => :testing
gem "rack", ">= 1.0.0", :only => :testing
gem "thin", ">= 1.2.4", :only => :testing
gem "selenium-rc", ">=2.1.0", :only => :testing
gem "selenium-client", ">=1.2.17", :only => :testing
disable_system_gems
+1 -2
View File
@@ -1,5 +1,4 @@
Copyright (c) 2008-2019 Pivotal Labs Copyright (c) 2008 Pivotal Labs
Copyright (c) 2008-2026 The Jasmine developers
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the
+37
View File
@@ -0,0 +1,37 @@
jasmine-ruby
============
Jasmine Ruby dynamically serves HTML suites for [Jasmine](http://github.com/pivotal/jasmine)
To use:
`(sudo) gem install jasmine`
Post-installation:
For Rails support, use
`script/generate jasmine`
For other projects, use
`jasmine init`
After initializing a project, you may
`rake jasmine`
to set up a server. Opening localhost:8888 in a web browser will now run your jasmine specs.
You may also
`rake jasmine:ci`
which will run your Jasmine suites using selenium and rspec. This task is suitable for running in continuous integration environments.
Simple Configuration:
Customize `spec/javascripts/support/jasmine.yaml` to enumerate the source files, stylesheets, and spec files you would like the Jasmine runner to include.
You may use dir glob strings.
It is also possible to add overrides into the `spec/javascripts/support/jasmine_config.rb` file directly if you require further customization.
-64
View File
@@ -1,64 +0,0 @@
<a name="README"><img src="https://raw.githubusercontent.com/jasmine/jasmine/main/images/jasmine-horizontal.svg" width="400px" alt="Jasmine"></a>
# A JavaScript Testing Framework
Jasmine is a Behavior Driven Development testing framework for JavaScript. It does not rely on browsers, DOM, or any JavaScript framework. Thus it's suited for websites, [Node.js](http://nodejs.org) projects, or anywhere that JavaScript can run.
Upgrading from Jasmine 4.x? Check out the [upgrade guide](https://jasmine.github.io/tutorials/upgrading_to_Jasmine_5.0).
## Contributing
Please read the [contributors' guide](https://github.com/jasmine/jasmine/blob/main/.github/CONTRIBUTING.md).
## Installation
There are several different ways to install Jasmine, depending on your
environment and how you'd like to use it. See the [Getting Started page](https://jasmine.github.io/pages/getting_started.html)
for details.
## Usage
See the [documentation site](https://jasmine.github.io/pages/docs_home.html),
particularly the [Your First Suite tutorial](https://jasmine.github.io/tutorials/your_first_suite)
for information on writing specs, and [the FAQ](https://jasmine.github.io/pages/faq.html).
## Supported environments
Jasmine tests itself across popular browsers (Safari, Chrome, Firefox, and
Microsoft Edge) as well as Node.
| Environment | Supported versions |
|-------------------|----------------------------------|
| Node | 20, 22, 24 |
| Safari | 26* |
| Chrome | Evergreen |
| Firefox | Evergreen, 140 |
| Edge | Evergreen |
For evergreen browsers, each version of Jasmine is tested against the version of the browser that is available to us
at the time of release. Other browsers, as well as older & newer versions of some supported browsers, are likely to work.
However, Jasmine isn't tested against them and they aren't actively supported.
\* Supported on a best-effort basis. Support for these versions may be dropped
if it becomes impractical, and bugs affecting only these versions may not be
treated as release blockers.
To find out what environments work with a particular Jasmine release, see the [release notes](https://github.com/jasmine/jasmine/tree/main/release_notes).
## Maintainers
* [Gwendolyn Van Hove](mailto:gwen@slackersoft.net)
* [Steve Gravrock](mailto:sdg@panix.com)
### Maintainers Emeritus
* [Davis W. Frank](mailto:dwfrank@pivotal.io)
* [Rajan Agaskar](mailto:rajan@pivotal.io)
* [Greg Cobb](mailto:gcobb@pivotal.io)
* [Chris Amavisca](mailto:camavisca@pivotal.io)
* [Christian Williams](mailto:antixian666@gmail.com)
* Sheel Choksi
Copyright (c) 2008-2019 Pivotal Labs<br>
Copyright (c) 2008-2026 The Jasmine developers<br>
This software is licensed under the [MIT License](https://github.com/jasmine/jasmine/blob/main/LICENSE).
-76
View File
@@ -1,76 +0,0 @@
# How to work on a Jasmine Release
## Development
___Jasmine Core Maintainers Only___
Follow the instructions in `CONTRIBUTING.md` during development.
### Git Rules
Please attempt to keep commits to `main` small, but cohesive. If a feature is contained in a bunch of small commits (e.g., it has several wip commits or small work), please squash them when pushing to `main`.
### Version
We attempt to stick to [Semantic Versioning](http://semver.org/). Most of the time, development should be against a new minor version - fixing bugs and adding new features that are backwards compatible.
The current version lives in the file `/package.json`. This version will be
copied to `jasmine.js` when the distribution is built. When releasing a new
version, update `package.json` with the new version and `npm run build` to
update the gem version number.
Note that Jasmine should only use the "patch" version number if the new release
contains only bug fixes.
When `jasmine-core` revs its major or minor version, the `jasmine` NPM package
should also rev to that version.
## Release
When ready to release - specs are all green and the stories are done:
1. Update the release notes in `release_notes` - use the Anchorman gem to
generate the Markdown file and edit accordingly. Include a list of supported
environments. Get that information from these places:
* For Node, see .circleci/config.yml or the README.
* For Firefox ESR and Safari <=17, see scripts/run-sauce-browsers or the README.
* For evergreen browsers, trigger a Circle CI run and check the
[Saucelabs dashboard](https://app.saucelabs.com/dashboard/tests?ownerId=90a771d55857492da3bd5251a2d92457&ownerType=user&ownerName=jasmine-js&start=last7days)
once it's finished.
* For Safari >17, trigger the [Safari action](https://github.com/jasmine/jasmine/actions/workflows/safari.yml)
and get the version from the output.
2. Update the version in `package.json`
3. Run `npm run build`.
### Commit and push core changes
1. Commit release notes and version changes (jasmine.js, package.json)
2. Push
3. Tag the release and push the tag.
4. Wait for Circle CI to go green
### Build standalone distribution
1. Build the standalone distribution with `npm run buildStandaloneDist`
1. This will generate `dist/jasmine-standalone-<version>.zip`, which you will upload later (see "Finally" below).
### Release the core NPM module
1. `npm login` to save your credentials locally
2. `npm publish .` to publish what's in `package.json`
### Release the docs
Probably only need to do this when releasing a minor version, and not a patch
version. See [the README file in the docs repo](https://github.com/jasmine/jasmine.github.io/blob/master/README.md)
for instructions.
### Release the `jasmine` NPM package
See <https://github.com/jasmine/jasmine-npm/blob/main/RELEASE.md>.
### Publish the GitHub release
1. Visit the releases page and find the tag just published.
2. Paste in a link to the correct release notes for this release.
3. If it is a pre-release, mark it as such.
4. Attach the standalone zipfile.
+66
View File
@@ -0,0 +1,66 @@
require "#{File.dirname(__FILE__)}/vendor/gems/environment"
Bundler.require_env :rake
$LOAD_PATH.unshift File.expand_path("#{File.dirname(__FILE__)}/lib")
require 'spec'
require 'spec/rake/spectask'
desc "Run all examples"
Spec::Rake::SpecTask.new('spec') do |t|
t.spec_files = FileList['spec/**/*.rb']
end
namespace :jasmine do
# require 'jasmine'
require 'spec/jasmine_self_test_config'
# desc "Run continuous integration tests"
# require "spec"
# require 'spec/rake/spectask'
# Spec::Rake::SpecTask.new(:ci) do |t|
# t.spec_opts = ["--color", "--format", "specdoc"]
# t.verbose = true
# t.spec_files = [JasmineHelper.meta_spec_path]
# end
task :server do
puts "your tests are here:"
puts " http://localhost:8888/run.html"
JasmineSelfTestConfig.new.start_server
end
end
desc "Run specs via server"
task :jasmine => ['jasmine:server']
namespace :jeweler do
unless File.exists?('jasmine/lib')
raise "Jasmine submodule isn't present. Run git submodule update --init"
end
begin
require 'jeweler'
require 'rake'
Jeweler::Tasks.new do |gemspec|
gemspec.name = "jasmine"
gemspec.summary = "Jasmine Ruby Runner"
gemspec.description = "Javascript BDD test framework"
gemspec.email = "ragaskar@gmail.com"
gemspec.homepage = "http://github.com/pivotal/jasmine-ruby"
gemspec.authors = ["Rajan Agaskar", "Christian Williams"]
gemspec.executables = ["jasmine"]
gemspec.files = FileList.new('generators/**/**', 'lib/**/**', 'jasmine/lib/**', 'jasmine/contrib/ruby/**', 'tasks/**', 'templates/**')
gemspec.add_dependency('rspec', '>= 1.1.5')
gemspec.add_dependency('json', '>= 1.1.9')
gemspec.add_dependency('rack', '>= 1.0.0')
gemspec.add_dependency('thin', '>= 1.2.4')
gemspec.add_dependency('selenium-rc', '>=2.1.0')
gemspec.add_dependency('selenium-client', '>=1.2.17')
end
Jeweler::GemcutterTasks.new
end
end
+5
View File
@@ -0,0 +1,5 @@
---
:patch: 5
:major: 0
:build:
:minor: 4
-28
View File
@@ -1,28 +0,0 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# tauri
/src-tauri/target
/src-tauri/Cargo.lock
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
-13
View File
@@ -1,13 +0,0 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>藝術家作品集</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
-20
View File
@@ -1,20 +0,0 @@
{
"name": "artist-website",
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"tauri": "tauri"
},
"dependencies": {
"vue": "^3.4.0"
},
"devDependencies": {
"@tauri-apps/api": "^1.5.0",
"@tauri-apps/cli": "^1.5.0",
"@vitejs/plugin-vue": "^5.0.0",
"vite": "^5.0.0"
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More