From 74a4963864ca03fc4ed1edb011afd4d6c302b918 Mon Sep 17 00:00:00 2001 From: jackie_wu Date: Thu, 20 Aug 2020 18:56:41 +0800 Subject: [PATCH] package init --- nodejs-p-locate.spec | 49 +++++++++++++++++++++++++++++++++++++++++++ nodejs-p-locate.yaml | 4 ++++ p-locate-2.0.0.tgz | Bin 0 -> 2580 bytes test.js | 41 ++++++++++++++++++++++++++++++++++++ 4 files changed, 94 insertions(+) create mode 100644 nodejs-p-locate.spec create mode 100644 nodejs-p-locate.yaml create mode 100644 p-locate-2.0.0.tgz create mode 100644 test.js diff --git a/nodejs-p-locate.spec b/nodejs-p-locate.spec new file mode 100644 index 0000000..010f620 --- /dev/null +++ b/nodejs-p-locate.spec @@ -0,0 +1,49 @@ +%{?nodejs_find_provides_and_requires} +%global packagename p-locate +%global enable_tests 0 +Name: nodejs-p-locate +Version: 2.0.0 +Release: 1 +Summary: Get the first fulfilled promise that satisfies the provided testing function +License: MIT +URL: https://github.com/sindresorhus/p-locate +Source0: https://registry.npmjs.org/%{packagename}/-/%{packagename}-%{version}.tgz +Source1: https://raw.githubusercontent.com/sindresorhus/p-locate/v%{version}/test.js +ExclusiveArch: %{nodejs_arches} noarch +BuildArch: noarch +BuildRequires: nodejs-packaging npm(p-limit) +%if 0%{?enable_tests} +BuildRequires: ava +%endif +%description +Get the first fulfilled promise that satisfies the provided testing function + +%prep +%autosetup -n package +cp -p %{SOURCE1} . + +%build + +%install +mkdir -p %{buildroot}%{nodejs_sitelib}/%{packagename} +cp -pr package.json index.js \ + %{buildroot}%{nodejs_sitelib}/%{packagename} +%nodejs_symlink_deps + +%check +%nodejs_symlink_deps --check +%{__nodejs} -e 'require("./")' +%if 0%{?enable_tests} +%{_bindir}/ava +%else +%{_bindir}/echo -e "\e[101m -=#=- Tests disabled -=#=- \e[0m" +%endif + +%files +%doc readme.md +%license license +%{nodejs_sitelib}/%{packagename} + +%changelog +* Mon Aug 17 2020 wutao - 2.0.0-1 +- Package init diff --git a/nodejs-p-locate.yaml b/nodejs-p-locate.yaml new file mode 100644 index 0000000..2bac5c0 --- /dev/null +++ b/nodejs-p-locate.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: sindresorhus/p-locate +tag_prefix: "^v" +seperator: "." diff --git a/p-locate-2.0.0.tgz b/p-locate-2.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..604acd63bfaf84f5d1dfcdd0a2fb2bdbfcd75828 GIT binary patch literal 2580 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 delay(ms).then(() => val === 2 || val === 3); + +test('main', async t => { + const end = timeSpan(); + t.is((await m(input, tester))[0], 2); + t.true(inRange(end(), 370, 450), 'should be time of item `2`'); +}); + +test('option {preserveOrder:false}', async t => { + const end = timeSpan(); + t.is((await m(input, tester, {preserveOrder: false}))[0], 3); + t.true(inRange(end(), 170, 250), 'should be time of item `3`'); +}); + +test('option {concurrency:1}', async t => { + const end = timeSpan(); + t.is((await m(input, tester, {concurrency: 1}))[0], 2); + t.true(inRange(end(), 670, 750), 'should be time of items `1` and `2`, since they run serially'); +}); + +test('returns `undefined` when nothing could be found', async t => { + t.is((await m([1, 2, 3], () => false)), undefined); +}); + +test('rejected return value in `tester` rejects the promise', async t => { + const fixtureErr = new Error('fixture'); + await t.throws(m([1, 2, 3], () => Promise.reject(fixtureErr)), fixtureErr.message); +});