我create-react
上周创建了一个 React 应用程序。
我有一个简单的表单,当我单击提交时会显示一条消息。
我想测试一下,这是我创建的测试SampleForm.test.tsx:
import React from "react";
import { render, fireEvent, screen, waitFor } from "@testing-library/react";
import SampleForm from "./SampleForm";
import "@testing-library/jest-dom/extend-expect"
test("renders submits form", async () => {
const str = "THIS DIDNT DO ANYTHING";
const { container, getByText, findByText } = render(<SampleForm />);
fireEvent.click(screen.getByText("Submit"));
await waitFor(() => expect(screen.getByText(str)))
});
Run Code Online (Sandbox Code Playgroud)
我在 waitFor
类型错误:MutationObserver 不是构造函数
堆栈跟踪:
at node_modules/@testing-library/dom/dist/wait-for.js:38:22
at waitFor (node_modules/@testing-library/dom/dist/wait-for.js:31:10)
at node_modules/@testing-library/dom/dist/wait-for.js:70:54
at node_modules/@testing-library/react/dist/pure.js:51:22
at node_modules/@testing-library/react/dist/act-compat.js:60:24
at batchedUpdates$1 (node_modules/react-dom/cjs/react-dom.development.js:21856:12)
at act (node_modules/react-dom/cjs/react-dom-test-utils.development.js:929:14)
at …
Run Code Online (Sandbox Code Playgroud) 我有以下测试:
it.only('validation should fail', function(done) {
var body = {
title: "dffdasfsdfsdafddfsadsa",
description: "Postman Description",
beginDate: now.add(3, 'd').format(),
endDate: now.add(4, 'd').format()
}
var rules = eventsValidation.eventCreationRules();
var valMessages = eventsValidation.eventCreationMessages();
indicative
.validateAll(rules, body, valMessages)
.then(function(data) {
console.log("SHOULD NOT GET HERE");
should.fail("should not get here");
done();
})
.catch(function(error) {
console.log("SHOULD GET HERE");
console.log(error);
});
done();
});
Run Code Online (Sandbox Code Playgroud)
测试执行路径是正确的.当我验证数据时,它会"不应该在这里".测试真的是确保它没有.当我输入非验证数据时,代码会转到"应该在这里".因此验证规则有效.
我正在尝试做的是确保当我有错误的验证数据并且验证时测试失败.然而,当我运行它,因为它有良好的数据,它验证,运行失败,但摩卡仍然标记为传递.如果执行"不应该在这里",我希望它失败.
我试过抛出新的错误("失败"); 也没有运气.在这两种情况下,它实际上似乎也在.catch块中运行代码.
有什么建议?我在类似的问题中找到了解决方案.写这个问题是因为这些解决方案似乎对我不起作用.
我的项目是一个非常基本的yo/angular项目.我有以下cssmin配置.
useminPrepare: {
html: '<%= yeoman.app %>/index.html',
options: {
dest: '<%= yeoman.dist %>',
flow: {
html: {
steps: {
js: ['concat', 'uglifyjs'],
css: ['cssmin']
},
post: {}
}
}
}
},
...
cssmin: {
dist: {
files: {
'<%= yeoman.dist %>/styles/main.css': [
'.tmp/styles/{,*/}*.css'
]
}
}
},
...
grunt.registerTask('build', [
'clean:dist',
'wiredep',
'useminPrepare',
'concurrent:dist',
'autoprefixer',
'concat',
'ngAnnotate',
'copy:dist',
'cdnify',
'cssmin',
'uglify',
'filerev',
'usemin',
'htmlmin'
]);
Run Code Online (Sandbox Code Playgroud)
当我运行grunt构建时,我收到以下错误:
Running "cssmin:generated" (cssmin) task
Warning: Path must be a string. Received undefined Use --force …
Run Code Online (Sandbox Code Playgroud) 使用 webpack 运行开发服务器,我尝试列出 S3 存储桶中的项目并在浏览器中使用 javascript aws-sdk 控制台输出结果。
\n\n这样做时我收到此错误:
\n\nCross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://bucketname.s3.amazonaws.com/?list-type=2&max-keys=2. (Reason: CORS header \xe2\x80\x98Access-Control-Allow-Origin\xe2\x80\x99 missing).\n
Run Code Online (Sandbox Code Playgroud)\n\n但是我在 webpack 开发服务器配置中设置了该标头,并通过以下方式证明:
\n\ncurl -I http://localhost:8080\n\nHTTP/1.1 200 OK\nX-Powered-By: Express\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS\nAccess-Control-Allow-Headers: X-Requested-With, content-type, Authorization\nX-Content-Type-Options: nosniff\nContent-Type: text/html; charset=utf-8\nContent-Length: 7170\nVary: Accept-Encoding\nDate: Sat, 02 Dec 2017 16:15:04 GMT\nConnection: keep-alive\n
Run Code Online (Sandbox Code Playgroud)\n\n所以我在所有事情上都尝试了*:
\n\nHTTP/1.1 404 Not Found\nX-Powered-By: Express\nAccess-Control-Allow-Origin: *\nAccess-Control-Allow-Methods: *\nAccess-Control-Allow-Headers: *\n
Run Code Online (Sandbox Code Playgroud)\n\n如果标头存在,但错误提示标头丢失,是否可能是授权等其他原因?
\n\n如果它确实是标头设置,那么如果标头确实存在,下一步将是什么?
\n\n更新**** …
我有以下 Java 类。
@Component
@JsonIgnoreProperties({"begin", "end"})
public class Event extends ResourceSupport {
@JsonProperty("name")
private final String name;
@JsonProperty("description")
private final String description;
@JsonProperty("timeZone")
private final ZoneId timeZone;
private final LocalDateTime begin;
private final LocalDateTime end;
Run Code Online (Sandbox Code Playgroud)
这在 REST 服务中返回。无论我做什么,它总是返回 的深层对象表示LocalDateTime
,如下所示。
...
{"hour":1,"minute":0,"second":0,"nano":0},"midnightEndOfDay":false},{"month":"OCTOBER","timeDefinition":"UTC","standardOffset":{"totalSeconds":3600,"id":"+01:00","rules":{"fixedOffset":true,"transitions":[],"transitionRules":[]}},"offsetBefore":{"totalSeconds":7200,"id":"+02:00","rules":{"fixedOffset":true,"transitions":[],"transitionRules":[]}},"offsetAfter":{"totalSeconds":3600,"id":"+01:00
...
Run Code Online (Sandbox Code Playgroud)
我也试过@JsonIgnore
直接放在它们上面。
下面是控制器:
@RequestMapping("/api/hello")
@ResponseBody
HttpEntity<Event> getEvent() {
Event event = new Event("name", "description", ZoneId.of("Europe/Paris"),
LocalDateTime.now().plusDays(1), LocalDateTime.now().plusDays(2));
event.add(linkTo(methodOn(EventApi.class).getEvent()).withSelfRel());
return new ResponseEntity<Event>(event, HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)
我也在尝试 Spring HATEOAS,所以我不确定这是否与它有关。
由于 SpringBoot 的自以为是,我应该使用不同的开发模式吗?
这似乎是一个项目设置问题.这在以前工作.我不知道这些错误消息可以帮助我开始.有没有人对从哪里开始诊断问题有一些建议?
21 05 2017 07:42:55.094:WARN [karma]: No captured browser, open http://localhost:9876/
21 05 2017 07:42:55.110:INFO [karma]: Karma v1.4.1 server started at http://0.0.0.0:9876/
21 05 2017 07:42:55.110:INFO [launcher]: Launching browser Chrome with unlimited concurrency
21 05 2017 07:42:55.118:INFO [launcher]: Starting browser Chrome ERROR in /Users/jgreenaw/WebstormProjects/legalcoveapp/node_modules/@angular/core/src/testability/testability.d.ts (41,33): Cannot find name 'Node'.
ERROR in /Users/jgreenaw/WebstormProjects/legalcoveapp/node_modules/@angular/forms/src/directives/ng_form.d.ts (69,22): Cannot find name 'Event'.
ERROR in /Users/jgreenaw/WebstormProjects/legalcoveapp/node_modules/@angular/forms/src/directives/reactive_directives/form_group_directive.d.ts (74,22): Cannot find name 'Event'.
ERROR in /Users/jgreenaw/WebstormProjects/legalcoveapp/node_modules/@ng-bootstrap/ng-bootstrap/rating/rating.d.ts (58,26): Cannot find name 'KeyboardEvent'.
ERROR in /Users/jgreenaw/WebstormProjects/legalcoveapp/node_modules/@ng-bootstrap/ng-bootstrap/typeahead/typeahead.d.ts (81,26): Cannot find name …
Run Code Online (Sandbox Code Playgroud) 我有这个更改集:
change_set = {'name': 'bso save job again', 'location': 'new york city', 'expires': '2020-04-04', 'created': '2020-03-05'}
Run Code Online (Sandbox Code Playgroud)
使用这个 id(我不是创建这个 id,它实际上是来自早期的保存):
id = '5e6107ddfef5aa3c2e3647b2'
Run Code Online (Sandbox Code Playgroud)
我正在尝试这样做:
result = dbjobs.update_one({'_id': id}, {'$set': change_set})
Run Code Online (Sandbox Code Playgroud)
我的 result.raw_result 是这样的:
{'n': 0, 'nModified': 0, 'ok': 1.0, 'updatedExisting': False}
Run Code Online (Sandbox Code Playgroud)
它没有抛出错误,我只是得到零零钱。难道我更新错了?
刚从点燃元素开始
在我的渲染中我有:
return html`
${this.jobCreate}
${this.jobDetails}
`;
Run Code Online (Sandbox Code Playgroud)
找工作创建工作正常
这是我的工作详情:
get jobDetails() {
const jobs = [
{ name: "phoenix job", location: "phoenix", expires: "2020-10-01" },
{ name: "chicago job", location: "chicago", expires: "2020-10-01" },
{ name: "pittsburgh job", location: "pittsburgh", expires: "2020-10-01" },
];
return html`<ul>
${jobs.forEach((job) => html`<li>${job.name}</li>`)}
</ul>`;
}
Run Code Online (Sandbox Code Playgroud)
检查元素我可以看到一个空<ul>
集
如果做一个<ul><li>${jobs[2].name}</li></ul>
有效的
如果我控制台输出作业,我可以看到所有正确的作业在循环中打印 3 次
我不明白为什么我不能得到<li>
在循环中渲染
我用这个作为参考:https ://lit-element.polymer-project.org/guide/templates#template-syntax-cheat-sheet
我在日志文件中收到缓存警告,但不确定原因。
我的缓存覆盖:
CACHE_CONFIG = {
'CACHE_TYPE': 'RedisCache',
'CACHE_DEFAULT_TIMEOUT': 86400,
'CACHE_KEY_PREFIX': 'superset_',
'CACHE_REDIS_HOST': 'localhost',
'CACHE_REDIS_PORT': 6379,
'CACHE_REDIS_DB': 1,
'CACHE_REDIS_URL': 'redis://localhost:6379/1'
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过redis
而不是RedisCache
日志语句:
2022-05-06 15:03:27,118:INFO:root:配置的类型为 <class 'superset.utils.log.DBEventLogger'> 的事件记录器回退到内置缓存,该缓存将数据存储在元数据数据库中,用于以下缓存:
FILTER_STATE_CACHE_CONFIG
. 建议使用RedisCache
,MemcachedCache
或另一个用于生产部署的专用缓存后端 2022-05-06 15:03:27,123:WARNING:superset.utils.cache_manager:回退到将数据存储在元数据数据库中的内置缓存,对于以下缓存:FILTER_STATE_CACHE_CONFIG
. 建议使用RedisCache
或MemcachedCache
其他用于生产部署的专用缓存后端 回退到内置缓存,将数据存储在元数据数据库中,用于以下缓存:EXPLORE_FORM_DATA_CACHE_CONFIG
。建议使用RedisCache
或MemcachedCache
其他专用缓存后端进行生产部署
在给定的示例中,我可以通过“order.shortCode”扫描 DynamoDB。控制台指示我不能使用点符号,而且我找不到任何关于它的文档。
{
"key2": "cj11b1ygp0000jcgubpe5mso3",
"order": {
"amount": 74.22,
"dateCreated": "2017-04-02T19:15:33-04:00",
"orderNumber": "cj11b1ygp0000jcgubpe5mso3",
"shortCode": "SJLLDE"
},
"skey2": "SJLLDE"
}
Run Code Online (Sandbox Code Playgroud) 尝试在 Angular 中实现管道。在意识到 ngFor 不适用于地图之后。一些研究让我相信未来的功能将会解决这个问题,但与此同时,mapToIterable 管道就是答案。
我有以下代码:
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
name: 'mapToIterable'
})
export class MapToIterablePipe implements PipeTransform {
transform(map: Map<string, Object>, args: any = []): any {
const a: any[] = [];
console.log(map.keys()); // <- works as expected
for (const k in map) {
if (map.has(k)) {
console.log("hello"); // <- never executes
console.log(k);
a.push({key: k, val: map.get(k)});
}
}
console.log(a); // <- always empty
return a;
}
}
export const MAPTOITERABLE_PROVIDERS = [
MapToIterablePipe
];
Run Code Online (Sandbox Code Playgroud)
map.keys() …
我甚至不知道该怎么称呼它所以不确定如何正确地提出这个问题.什么是运营商,它在做什么?我假设它只是将函数表达式作为回调传递,但语法对我来说是新的.
(错)=>
fs.writeFile('message.txt', 'Hello Node.js', (err) => {
if (err) throw err;
console.log('It\'s saved!');
});
Run Code Online (Sandbox Code Playgroud) javascript ×3
typescript ×3
angular ×2
node.js ×2
amazon-s3 ×1
angular-pipe ×1
aws-sdk-js ×1
grunt-usemin ×1
gruntjs ×1
jackson ×1
java ×1
jestjs ×1
karma-runner ×1
lit-element ×1
mocha.js ×1
mongodb ×1
pymongo ×1
python ×1
reactjs ×1
redis-cache ×1
render ×1
spring-boot ×1
yo ×1